From: Dave Airlie <airl...@redhat.com> The drawpixel lowering references undeclared samplers, but also missing a texture handle. --- src/compiler/nir/nir_lower_drawpixels.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+)
diff --git a/src/compiler/nir/nir_lower_drawpixels.c b/src/compiler/nir/nir_lower_drawpixels.c index 462b9c308b2..3e86cc08470 100644 --- a/src/compiler/nir/nir_lower_drawpixels.c +++ b/src/compiler/nir/nir_lower_drawpixels.c @@ -66,6 +66,24 @@ get_texcoord(lower_drawpixels_state *state) return nir_load_var(&state->b, state->texcoord); } +static void +add_samplers(lower_drawpixels_state *state) +{ + nir_variable *sampler = nir_variable_create(state->shader, + nir_var_uniform, + glsl_sampler_type(GLSL_SAMPLER_DIM_2D, false, false, GLSL_TYPE_FLOAT), + "s_drawpix"); + sampler->data.location = state->options->drawpix_sampler; + + if (state->options->pixel_maps) { + nir_variable *sampler = nir_variable_create(state->shader, + nir_var_uniform, + glsl_sampler_type(GLSL_SAMPLER_DIM_2D, false, false, GLSL_TYPE_FLOAT), + "s_pixelmap"); + sampler->data.location = state->options->pixelmap_sampler; + } +} + static nir_variable * create_uniform(nir_shader *shader, const char *name, const gl_state_index16 state_tokens[STATE_LENGTH]) @@ -123,6 +141,7 @@ lower_color(lower_drawpixels_state *state, nir_intrinsic_instr *intr) b->cursor = nir_before_instr(&intr->instr); + add_samplers(state); texcoord = get_texcoord(state); /* replace load_var(gl_Color) w/ texture sample: @@ -175,6 +194,7 @@ lower_color(lower_drawpixels_state *state, nir_intrinsic_instr *intr) tex->sampler_dim = GLSL_SAMPLER_DIM_2D; tex->coord_components = 2; tex->sampler_index = state->options->pixelmap_sampler; + tex->texture_index = state->options->pixelmap_sampler; tex->dest_type = nir_type_float; tex->src[0].src_type = nir_tex_src_coord; tex->src[0].src = nir_src_for_ssa(nir_channels(b, def, 0xc)); -- 2.17.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev