Browse Source

iris: don't trip on param asserts

I'd rather not rewrite i965's compute system value handling right now :(
tags/19.1-branchpoint
Kenneth Graunke 6 years ago
parent
commit
1b5d35319e
1 changed files with 7 additions and 3 deletions
  1. 7
    3
      src/gallium/drivers/iris/iris_program.c

+ 7
- 3
src/gallium/drivers/iris/iris_program.c View File

@@ -415,6 +415,13 @@ iris_setup_uniforms(const struct brw_compiler *compiler,
enum brw_param_builtin **out_system_values,
unsigned *out_num_system_values)
{
/* We don't use params[], but fs_visitor::nir_setup_uniforms() asserts
* about it for compute shaders, so go ahead and make some fake ones
* which the backend will dead code eliminate.
*/
prog_data->nr_params = nir->num_uniforms;
prog_data->param = rzalloc_array(mem_ctx, uint32_t, prog_data->nr_params);

/* The intel compiler assumes that num_uniforms is in bytes. For
* scalar that means 4 bytes per uniform slot.
*
@@ -422,9 +429,6 @@ iris_setup_uniforms(const struct brw_compiler *compiler,
*/
nir->num_uniforms *= 4;

prog_data->nr_params = 0;
prog_data->param = rzalloc_array(mem_ctx, uint32_t, 1);

const unsigned IRIS_MAX_SYSTEM_VALUES = 32;
enum brw_param_builtin *system_values =
rzalloc_array(mem_ctx, enum brw_param_builtin, IRIS_MAX_SYSTEM_VALUES);

Loading…
Cancel
Save