mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-29 03:40:10 +01:00
i965/fs: Default all constants to a location of -1
Otherwise constants which aren't live get an undefined constant location.
When we go to set up param and pull_param we end up assigning all unused
uniforms to slot 0. This cases the Vulkan driver to segfault because it
doesn't have pull_param.
This fixes bugs in the Vulkan driver introduced in c3fab3d000.
Reviewed-by: Mark Janes <mark.a.janes@intel.com>
This commit is contained in:
parent
d36d11ad90
commit
203c786a73
1 changed files with 4 additions and 6 deletions
|
|
@ -2138,6 +2138,10 @@ fs_visitor::assign_constant_locations()
|
|||
push_constant_loc = ralloc_array(mem_ctx, int, uniforms);
|
||||
pull_constant_loc = ralloc_array(mem_ctx, int, uniforms);
|
||||
|
||||
/* Default to -1 meaning no location */
|
||||
memset(push_constant_loc, -1, uniforms * sizeof(*push_constant_loc));
|
||||
memset(pull_constant_loc, -1, uniforms * sizeof(*pull_constant_loc));
|
||||
|
||||
int chunk_start = -1;
|
||||
|
||||
/* First push 64-bit uniforms to ensure they are properly aligned */
|
||||
|
|
@ -2145,9 +2149,6 @@ fs_visitor::assign_constant_locations()
|
|||
if (!is_live[u] || !is_live_64bit[u])
|
||||
continue;
|
||||
|
||||
pull_constant_loc[u] = -1;
|
||||
push_constant_loc[u] = -1;
|
||||
|
||||
set_push_pull_constant_loc(u, &chunk_start, contiguous[u],
|
||||
push_constant_loc, pull_constant_loc,
|
||||
&num_push_constants, &num_pull_constants,
|
||||
|
|
@ -2161,9 +2162,6 @@ fs_visitor::assign_constant_locations()
|
|||
if (!is_live[u] || is_live_64bit[u])
|
||||
continue;
|
||||
|
||||
pull_constant_loc[u] = -1;
|
||||
push_constant_loc[u] = -1;
|
||||
|
||||
set_push_pull_constant_loc(u, &chunk_start, contiguous[u],
|
||||
push_constant_loc, pull_constant_loc,
|
||||
&num_push_constants, &num_pull_constants,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue