Skip to content
Snippets Groups Projects
Commit a828dd4c authored by Alexander Rose's avatar Alexander Rose
Browse files

added draw & instance count to renderer stats

parent e25fbfe2
No related branches found
No related tags found
No related merge requests found
......@@ -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: () => {
......
......@@ -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)
......
......@@ -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
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment