pipe_target = is_array ? PIPE_TEXTURE_1D_ARRAY : PIPE_TEXTURE_1D;
break;
case GLSL_SAMPLER_DIM_2D:
+ case GLSL_SAMPLER_DIM_SUBPASS:
pipe_target = is_array ? PIPE_TEXTURE_2D_ARRAY : PIPE_TEXTURE_2D;
break;
case GLSL_SAMPLER_DIM_3D:
pipe_target = PIPE_TEXTURE_3D;
break;
case GLSL_SAMPLER_DIM_MS:
+ case GLSL_SAMPLER_DIM_SUBPASS_MS:
pipe_target = is_array ? PIPE_TEXTURE_2D_ARRAY : PIPE_TEXTURE_2D;
break;
case GLSL_SAMPLER_DIM_CUBE:
params.coords = coords;
params.outdata = result;
params.img_op = LP_IMG_LOAD;
- if (glsl_get_sampler_dim(type) == GLSL_SAMPLER_DIM_MS)
- params.ms_index = get_src(bld_base, instr->src[2]);
+ if (glsl_get_sampler_dim(type) == GLSL_SAMPLER_DIM_MS || glsl_get_sampler_dim(type) == GLSL_SAMPLER_DIM_SUBPASS_MS)
+ params.ms_index = cast_type(bld_base, get_src(bld_base, instr->src[2]), nir_type_uint, 32);
params.image_index = var->data.binding + (indir_index ? 0 : const_index);
params.image_index_offset = indir_index;
bld_base->image_op(bld_base, ¶ms);