glsl/i965: move per stage AtomicBuffers list to gl_program

Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
This commit is contained in:
Timothy Arceri
2016-11-11 11:45:54 +11:00
parent 9d96d3803a
commit c20564ae3e
10 changed files with 25 additions and 48 deletions

View File

@@ -267,8 +267,9 @@ link_assign_atomic_counter_resources(struct gl_context *ctx,
*/
for (unsigned j = 0; j < MESA_SHADER_STAGES; ++j) {
if (prog->_LinkedShaders[j] && num_atomic_buffers[j] > 0) {
prog->_LinkedShaders[j]->NumAtomicBuffers = num_atomic_buffers[j];
prog->_LinkedShaders[j]->AtomicBuffers =
struct gl_program *gl_prog = prog->_LinkedShaders[j]->Program;
gl_prog->info.num_abos = num_atomic_buffers[j];
gl_prog->sh.AtomicBuffers =
rzalloc_array(prog, gl_active_atomic_buffer *,
num_atomic_buffers[j]);
@@ -277,8 +278,7 @@ link_assign_atomic_counter_resources(struct gl_context *ctx,
struct gl_active_atomic_buffer *atomic_buffer =
&prog->AtomicBuffers[i];
if (atomic_buffer->StageReferences[j]) {
prog->_LinkedShaders[j]->AtomicBuffers[intra_stage_idx] =
atomic_buffer;
gl_prog->sh.AtomicBuffers[intra_stage_idx] = atomic_buffer;
for (unsigned u = 0; u < atomic_buffer->NumUniforms; u++) {
prog->UniformStorage[atomic_buffer->Uniforms[u]].opaque[j].index =