Lines Matching refs:state
42 get_texcoord(lower_drawpixels_state *state)
44 if (state->texcoord == NULL) {
48 nir_foreach_shader_in_variable(var, state->shader) {
57 texcoord = nir_variable_create(state->shader,
64 state->texcoord = texcoord;
66 return nir_load_var(&state->b, state->texcoord);
85 get_scale(lower_drawpixels_state *state)
87 if (state->scale == NULL) {
88 state->scale = create_uniform(state->shader, "gl_PTscale",
89 state->options->scale_state_tokens);
91 return nir_load_var(&state->b, state->scale);
95 get_bias(lower_drawpixels_state *state)
97 if (state->bias == NULL) {
98 state->bias = create_uniform(state->shader, "gl_PTbias",
99 state->options->bias_state_tokens);
101 return nir_load_var(&state->b, state->bias);
105 get_texcoord_const(lower_drawpixels_state *state)
107 if (state->texcoord_const == NULL) {
108 state->texcoord_const = create_uniform(state->shader,
110 state->options->texcoord_state_tokens);
112 return nir_load_var(&state->b, state->texcoord_const);
116 lower_color(lower_drawpixels_state *state, nir_intrinsic_instr *intr)
118 nir_builder *b = &state->b;
127 texcoord = get_texcoord(state);
132 if (!state->tex) {
133 state->tex =
135 state->tex->data.binding = state->options->drawpix_sampler;
136 state->tex->data.explicit_binding = true;
137 state->tex->data.how_declared = nir_var_hidden;
140 nir_deref_instr *tex_deref = nir_build_deref_var(b, state->tex);
145 tex = nir_tex_instr_create(state->shader, 3);
164 if (state->options->scale_and_bias) {
166 def = nir_ffma(b, def, get_scale(state), get_bias(state));
169 if (state->options->pixel_maps) {
170 if (!state->pixelmap) {
171 state->pixelmap = nir_variable_create(b->shader, nir_var_uniform,
173 state->pixelmap->data.binding = state->options->pixelmap_sampler;
174 state->pixelmap->data.explicit_binding = true;
175 state->pixelmap->data.how_declared = nir_var_hidden;
179 nir_build_deref_var(b, state->pixelmap);
185 tex = nir_tex_instr_create(state->shader, 3);
189 tex->sampler_index = state->options->pixelmap_sampler;
190 tex->texture_index = state->options->pixelmap_sampler;
204 tex = nir_tex_instr_create(state->shader, 1);
208 tex->sampler_index = state->options->pixelmap_sampler;
229 lower_texcoord(lower_drawpixels_state *state, nir_intrinsic_instr *intr)
231 state->b.cursor = nir_before_instr(&intr->instr);
233 nir_ssa_def *texcoord_const = get_texcoord_const(state);
238 lower_drawpixels_block(lower_drawpixels_state *state, nir_block *block)
252 lower_color(state, intr);
256 lower_texcoord(state, intr);
262 lower_color(state, intr);
268 lower_texcoord(state, intr);
281 lower_drawpixels_impl(lower_drawpixels_state *state, nir_function_impl *impl)
283 nir_builder_init(&state->b, impl);
286 lower_drawpixels_block(state, block);
296 lower_drawpixels_state state = {
305 lower_drawpixels_impl(&state, function->impl);