return so;
}
+static void
+v3d_flag_dirty_sampler_state(struct v3d_context *v3d,
+ enum pipe_shader_type shader)
+{
+ switch (shader) {
+ case PIPE_SHADER_VERTEX:
+ v3d->dirty |= VC5_DIRTY_VERTTEX;
+ break;
+ case PIPE_SHADER_FRAGMENT:
+ v3d->dirty |= VC5_DIRTY_FRAGTEX;
+ break;
+ default:
+ unreachable("Unsupported shader stage");
+ }
+}
+
static void
v3d_sampler_states_bind(struct pipe_context *pctx,
enum pipe_shader_type shader, unsigned start,
}
stage_tex->num_samplers = new_nr;
+
+ v3d_flag_dirty_sampler_state(v3d, shader);
}
static void
prsc->target == PIPE_TEXTURE_1D_ARRAY) {
tex->image_height = tex->image_width >> 14;
}
+
+ tex->image_width &= (1 << 14) - 1;
+ tex->image_height &= (1 << 14) - 1;
#endif
if (prsc->target == PIPE_TEXTURE_3D) {
}
stage_tex->num_textures = new_nr;
+
+ v3d_flag_dirty_sampler_state(v3d, shader);
}
static struct pipe_stream_output_target *