st/mesa/glsl/i965: move ImageUnits and ImageAccess fields to gl_program
Having it here rather than in gl_linked_shader allows us to simplify the code. Also it is error prone to depend on the gl_linked_shader for programs in current use because a failed linking attempt will free infomation about the current program. In i965 we could be trying to recompile a shader variant but may have lost some required fields. We drop the memset on ImageUnits because gl_program is already created using rzalloc(). Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
This commit is contained in:
@@ -613,7 +613,7 @@ private:
|
||||
this->next_image += MAX2(1, uniform->array_elements);
|
||||
|
||||
for (unsigned i = first; i < MIN2(next_image, MAX_IMAGE_UNIFORMS); i++)
|
||||
prog->_LinkedShaders[shader_type]->ImageAccess[i] = access;
|
||||
prog->_LinkedShaders[shader_type]->Program->sh.ImageAccess[i] = access;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1308,7 +1308,6 @@ link_assign_uniform_locations(struct gl_shader_program *prog,
|
||||
* types cannot have initializers."
|
||||
*/
|
||||
memset(sh->SamplerUnits, 0, sizeof(sh->SamplerUnits));
|
||||
memset(sh->ImageUnits, 0, sizeof(sh->ImageUnits));
|
||||
|
||||
link_update_uniform_buffer_variables(sh, i);
|
||||
|
||||
|
Reference in New Issue
Block a user