From a828dd4ca10069df29b4067229c519d5f8a8031c Mon Sep 17 00:00:00 2001 From: Alexander Rose <alex.rose@rcsb.org> Date: Wed, 26 Sep 2018 11:23:48 -0700 Subject: [PATCH] added draw & instance count to renderer stats --- src/mol-gl/renderer.ts | 9 ++++++++- src/mol-gl/webgl/context.ts | 8 ++++++++ src/mol-gl/webgl/render-item.ts | 8 ++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/mol-gl/renderer.ts b/src/mol-gl/renderer.ts index 45e6d11f2..f1eb40556 100644 --- a/src/mol-gl/renderer.ts +++ b/src/mol-gl/renderer.ts @@ -26,6 +26,10 @@ export interface RendererStats { renderbufferCount: number textureCount: number vaoCount: number + + drawCount: number + instanceCount: number + instancedDrawCount: number } interface Renderer { @@ -166,7 +170,6 @@ namespace Renderer { }, get stats(): RendererStats { - console.log(ctx) return { programCount: ctx.programCache.count, shaderCount: ctx.shaderCache.count, @@ -176,6 +179,10 @@ namespace Renderer { renderbufferCount: ctx.renderbufferCount, textureCount: ctx.textureCount, vaoCount: ctx.vaoCount, + + drawCount: ctx.drawCount, + instanceCount: ctx.instanceCount, + instancedDrawCount: ctx.instancedDrawCount, } }, dispose: () => { diff --git a/src/mol-gl/webgl/context.ts b/src/mol-gl/webgl/context.ts index 5c5e9635a..c33ac3e8c 100644 --- a/src/mol-gl/webgl/context.ts +++ b/src/mol-gl/webgl/context.ts @@ -76,6 +76,10 @@ export interface Context { textureCount: number vaoCount: number + drawCount: number + instanceCount: number + instancedDrawCount: number + unbindFramebuffer: () => void readPixels: (x: number, y: number, width: number, height: number, buffer: Uint8Array) => void destroy: () => void @@ -116,6 +120,10 @@ export function createContext(gl: WebGLRenderingContext): Context { textureCount: 0, vaoCount: 0, + drawCount: 0, + instanceCount: 0, + instancedDrawCount: 0, + unbindFramebuffer: () => unbindFramebuffer(gl), readPixels: (x: number, y: number, width: number, height: number, buffer: Uint8Array) => { gl.readPixels(x, y, width, height, gl.RGBA, gl.UNSIGNED_BYTE, buffer) diff --git a/src/mol-gl/webgl/render-item.ts b/src/mol-gl/webgl/render-item.ts index ce6f79961..7cc81d732 100644 --- a/src/mol-gl/webgl/render-item.ts +++ b/src/mol-gl/webgl/render-item.ts @@ -97,6 +97,10 @@ export function createRenderItem(ctx: Context, drawMode: DrawMode, shaderCode: S let drawCount = values.drawCount.ref.value let instanceCount = values.instanceCount.ref.value + ctx.drawCount += drawCount + ctx.instanceCount += instanceCount + ctx.instancedDrawCount += instanceCount * drawCount + const valueChanges: ValueChanges = { attributes: false, defines: false, @@ -157,11 +161,15 @@ export function createRenderItem(ctx: Context, drawMode: DrawMode, shaderCode: S if (values.drawCount.ref.version !== versions.drawCount) { // console.log('drawCount version changed') + ctx.drawCount += values.drawCount.ref.value - drawCount + ctx.instancedDrawCount += instanceCount * values.drawCount.ref.value - instanceCount * drawCount drawCount = values.drawCount.ref.value versions.drawCount = values.drawCount.ref.version } if (values.instanceCount.ref.version !== versions.instanceCount) { // console.log('instanceCount version changed') + ctx.instanceCount += values.instanceCount.ref.value - instanceCount + ctx.instancedDrawCount += values.instanceCount.ref.value * drawCount - instanceCount * drawCount instanceCount = values.instanceCount.ref.value versions.instanceCount = values.instanceCount.ref.version } -- GitLab