Disable the GPU timer by default

This commit is contained in:
schmelczerandras 2020-09-29 17:21:17 +02:00
parent bd1eb1102e
commit d241f36866
4 changed files with 19 additions and 5 deletions

View file

@ -49,7 +49,6 @@ export class WebGlStopwatch {
this.gl.QUERY_RESULT_AVAILABLE
);
const disjoint = this.gl.getParameter(this.timerExtension.GPU_DISJOINT_EXT);
if (available && !disjoint) {
this.resultsInNanoSeconds = this.gl.getQueryParameter(
this.timerQuery!,
@ -70,6 +69,10 @@ export class WebGlStopwatch {
return this.state == StopwatchState.running;
}
public get isWaitingForResults(): boolean {
return this.state == StopwatchState.waitingForResults;
}
public get resultsInMilliSeconds(): number {
return this.resultsInNanoSeconds! / 1000 / 1000;
}

View file

@ -139,10 +139,12 @@ export class RendererImplementation implements Renderer {
await compiler.compilePrograms();
await Promise.all(promises);
try {
this.stopwatch = new WebGlStopwatch(this.gl);
} catch {
// no problem
if (settings.enableStopwatch) {
try {
this.stopwatch = new WebGlStopwatch(this.gl);
} catch {
// no problem
}
}
}

View file

@ -7,4 +7,5 @@ export const defaultStartupSettings: StartupSettings = {
shadowTraceCount: 16,
paletteSize: 256,
ignoreWebGL2: false,
enableStopwatch: true,
};

View file

@ -5,6 +5,14 @@
* The default values for StartupSettings can be found in [[defaultStartupSettings]].
*/
export interface StartupSettings {
/**
* Creates a stopwatch used for measuring the GPU render time
* when its required extension is available.
*
* You should only have one renderer with enabled stopwatch.
*/
enableStopwatch: boolean;
/**
* The raytracing algorithm used for shadows requires a step count.
* Sensible values for this are between 8 and 32.