mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-08-24 07:26:34 +00:00
Fix querying atomic counter buffer info
Since GLES doesn't support glGetActiveAtomicCounterBufferiv we use glGetProgramResourceiv instead.
This commit is contained in:
committed by
Baldur Karlsson
parent
9b913de877
commit
1fd5bfa4c6
@@ -2104,22 +2104,38 @@ void GetBindpointMapping(const GLHookSet &gl, GLuint curProg, int shadIdx, Shade
|
||||
}
|
||||
else
|
||||
{
|
||||
const GLenum atomicRefEnum[] = {
|
||||
eGL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER,
|
||||
eGL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER,
|
||||
eGL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER,
|
||||
eGL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER,
|
||||
eGL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER,
|
||||
eGL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER,
|
||||
};
|
||||
mapping.ReadWriteResources[i].bindset = 0;
|
||||
gl.glGetActiveAtomicCounterBufferiv(curProg, atomicIndex,
|
||||
eGL_ATOMIC_COUNTER_BUFFER_BINDING,
|
||||
&mapping.ReadWriteResources[i].bind);
|
||||
GLint used = 0;
|
||||
gl.glGetActiveAtomicCounterBufferiv(curProg, atomicIndex, atomicRefEnum[shadIdx], &used);
|
||||
mapping.ReadWriteResources[i].used = (used != 0);
|
||||
mapping.ReadWriteResources[i].arraySize = 1;
|
||||
if(IsGLES)
|
||||
{
|
||||
prop = eGL_BUFFER_BINDING;
|
||||
mapping.ReadWriteResources[i].bindset = 0;
|
||||
gl.glGetProgramResourceiv(curProg, eGL_ATOMIC_COUNTER_BUFFER, atomicIndex, 1, &prop,
|
||||
1, NULL, &mapping.ReadWriteResources[i].bind);
|
||||
GLint used = 0;
|
||||
gl.glGetProgramResourceiv(curProg, eGL_ATOMIC_COUNTER_BUFFER, atomicIndex, 1,
|
||||
&refEnum[shadIdx], 1, NULL, &used);
|
||||
mapping.ReadWriteResources[i].used = (used != 0);
|
||||
mapping.ReadWriteResources[i].arraySize = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
const GLenum atomicRefEnum[] = {
|
||||
eGL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER,
|
||||
eGL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER,
|
||||
eGL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER,
|
||||
eGL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER,
|
||||
eGL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER,
|
||||
eGL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER,
|
||||
};
|
||||
mapping.ReadWriteResources[i].bindset = 0;
|
||||
gl.glGetActiveAtomicCounterBufferiv(curProg, atomicIndex,
|
||||
eGL_ATOMIC_COUNTER_BUFFER_BINDING,
|
||||
&mapping.ReadWriteResources[i].bind);
|
||||
GLint used = 0;
|
||||
gl.glGetActiveAtomicCounterBufferiv(curProg, atomicIndex, atomicRefEnum[shadIdx],
|
||||
&used);
|
||||
mapping.ReadWriteResources[i].used = (used != 0);
|
||||
mapping.ReadWriteResources[i].arraySize = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user