struct anv_pipeline_bind_map map = {
.surface_count = 0,
.sampler_count = 0,
+ .image_count = 0,
};
for (uint32_t set = 0; set < layout->num_sets; set++) {
}
if (map.image_count > 0) {
+ assert(map.image_count <= MAX_IMAGES);
nir_foreach_variable(var, &shader->uniforms) {
if (glsl_type_is_image(var->type) ||
(glsl_type_is_array(var->type) &&
}
struct anv_push_constants *null_data = NULL;
- const gl_constant_value **param = prog_data->param + shader->num_uniforms;
+ const gl_constant_value **param =
+ prog_data->param + (shader->num_uniforms / 4);
const struct brw_image_param *image_param = null_data->images;
for (uint32_t i = 0; i < map.image_count; i++) {
setup_vec4_uniform_value(param + BRW_IMAGE_PARAM_SURFACE_IDX_OFFSET,
if (pipeline->layout && pipeline->layout->stage[stage].has_dynamic_offsets)
prog_data->nr_params += MAX_DYNAMIC_BUFFERS * 2;
- if (pipeline->bindings[stage].image_count > 0)
- prog_data->nr_params += pipeline->bindings[stage].image_count *
- BRW_IMAGE_PARAM_SIZE;
+ if (nir->info.num_images > 0)
+ prog_data->nr_params += nir->info.num_images * BRW_IMAGE_PARAM_SIZE;
if (prog_data->nr_params > 0) {
/* XXX: I think we're leaking this */