Loosely based on tessellation shaders. Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com> --- src/gallium/auxiliary/hud/hud_context.c | 3 +++ src/gallium/auxiliary/postprocess/pp_run.c | 3 +++ src/gallium/auxiliary/util/u_blit.c | 3 +++ src/mesa/state_tracker/st_cb_bitmap.c | 3 +++ src/mesa/state_tracker/st_cb_clear.c | 3 +++ src/mesa/state_tracker/st_cb_drawpixels.c | 3 +++ src/mesa/state_tracker/st_cb_drawtex.c | 3 +++ 7 files changed, 21 insertions(+)
diff --git a/src/gallium/auxiliary/hud/hud_context.c b/src/gallium/auxiliary/hud/hud_context.c index 75afebe..6387638 100644 --- a/src/gallium/auxiliary/hud/hud_context.c +++ b/src/gallium/auxiliary/hud/hud_context.c @@ -472,6 +472,7 @@ hud_draw(struct hud_context *hud, struct pipe_resource *tex) cso_save_viewport(cso); cso_save_stream_outputs(cso); cso_save_geometry_shader(cso); + cso_save_compute_shader(cso); cso_save_tessctrl_shader(cso); cso_save_tesseval_shader(cso); cso_save_vertex_shader(cso); @@ -510,6 +511,7 @@ hud_draw(struct hud_context *hud, struct pipe_resource *tex) cso_set_tessctrl_shader_handle(cso, NULL); cso_set_tesseval_shader_handle(cso, NULL); cso_set_geometry_shader_handle(cso, NULL); + cso_set_compute_shader_handle(cso, NULL); cso_set_vertex_shader_handle(cso, hud->vs); cso_set_vertex_elements(cso, 2, hud->velems); cso_set_render_condition(cso, NULL, FALSE, 0); @@ -606,6 +608,7 @@ hud_draw(struct hud_context *hud, struct pipe_resource *tex) cso_restore_tessctrl_shader(cso); cso_restore_tesseval_shader(cso); cso_restore_geometry_shader(cso); + cso_restore_compute_shader(cso); cso_restore_vertex_shader(cso); cso_restore_vertex_elements(cso); cso_restore_aux_vertex_buffer_slot(cso); diff --git a/src/gallium/auxiliary/postprocess/pp_run.c b/src/gallium/auxiliary/postprocess/pp_run.c index c6c7b88..58abef1 100644 --- a/src/gallium/auxiliary/postprocess/pp_run.c +++ b/src/gallium/auxiliary/postprocess/pp_run.c @@ -122,6 +122,7 @@ pp_run(struct pp_queue_t *ppq, struct pipe_resource *in, cso_save_tessctrl_shader(cso); cso_save_tesseval_shader(cso); cso_save_geometry_shader(cso); + cso_save_compute_shader(cso); cso_save_rasterizer(cso); cso_save_sample_mask(cso); cso_save_min_samples(cso); @@ -144,6 +145,7 @@ pp_run(struct pp_queue_t *ppq, struct pipe_resource *in, cso_set_tessctrl_shader_handle(cso, NULL); cso_set_tesseval_shader_handle(cso, NULL); cso_set_geometry_shader_handle(cso, NULL); + cso_set_compute_shader_handle(cso, NULL); cso_set_render_condition(cso, NULL, FALSE, 0); // Kept only for this frame. @@ -193,6 +195,7 @@ pp_run(struct pp_queue_t *ppq, struct pipe_resource *in, cso_restore_tessctrl_shader(cso); cso_restore_tesseval_shader(cso); cso_restore_geometry_shader(cso); + cso_restore_compute_shader(cso); cso_restore_rasterizer(cso); cso_restore_sample_mask(cso); cso_restore_min_samples(cso); diff --git a/src/gallium/auxiliary/util/u_blit.c b/src/gallium/auxiliary/util/u_blit.c index 9737c94..ffb7b88 100644 --- a/src/gallium/auxiliary/util/u_blit.c +++ b/src/gallium/auxiliary/util/u_blit.c @@ -556,6 +556,7 @@ util_blit_pixels_tex(struct blit_state *ctx, cso_save_tessctrl_shader(ctx->cso); cso_save_tesseval_shader(ctx->cso); cso_save_geometry_shader(ctx->cso); + cso_save_compute_shader(ctx->cso); cso_save_vertex_elements(ctx->cso); cso_save_aux_vertex_buffer_slot(ctx->cso); @@ -597,6 +598,7 @@ util_blit_pixels_tex(struct blit_state *ctx, cso_set_tessctrl_shader_handle(ctx->cso, NULL); cso_set_tesseval_shader_handle(ctx->cso, NULL); cso_set_geometry_shader_handle(ctx->cso, NULL); + cso_set_compute_shader_handle(ctx->cso, NULL); /* drawing dest */ memset(&fb, 0, sizeof(fb)); @@ -639,6 +641,7 @@ util_blit_pixels_tex(struct blit_state *ctx, cso_restore_tessctrl_shader(ctx->cso); cso_restore_tesseval_shader(ctx->cso); cso_restore_geometry_shader(ctx->cso); + cso_restore_compute_shader(ctx->cso); cso_restore_vertex_elements(ctx->cso); cso_restore_aux_vertex_buffer_slot(ctx->cso); cso_restore_stream_outputs(ctx->cso); diff --git a/src/mesa/state_tracker/st_cb_bitmap.c b/src/mesa/state_tracker/st_cb_bitmap.c index d8c3dbd..3242644 100644 --- a/src/mesa/state_tracker/st_cb_bitmap.c +++ b/src/mesa/state_tracker/st_cb_bitmap.c @@ -312,6 +312,7 @@ draw_bitmap_quad(struct gl_context *ctx, GLint x, GLint y, GLfloat z, cso_save_tessctrl_shader(cso); cso_save_tesseval_shader(cso); cso_save_geometry_shader(cso); + cso_save_compute_shader(cso); cso_save_vertex_elements(cso); cso_save_aux_vertex_buffer_slot(cso); @@ -329,6 +330,7 @@ draw_bitmap_quad(struct gl_context *ctx, GLint x, GLint y, GLfloat z, cso_set_tessctrl_shader_handle(cso, NULL); cso_set_tesseval_shader_handle(cso, NULL); cso_set_geometry_shader_handle(cso, NULL); + cso_set_compute_shader_handle(cso, NULL); /* user samplers, plus our bitmap sampler */ { @@ -400,6 +402,7 @@ draw_bitmap_quad(struct gl_context *ctx, GLint x, GLint y, GLfloat z, cso_restore_tessctrl_shader(cso); cso_restore_tesseval_shader(cso); cso_restore_geometry_shader(cso); + cso_restore_compute_shader(cso); cso_restore_vertex_elements(cso); cso_restore_aux_vertex_buffer_slot(cso); cso_restore_stream_outputs(cso); diff --git a/src/mesa/state_tracker/st_cb_clear.c b/src/mesa/state_tracker/st_cb_clear.c index 7b6d10e..14928b0 100644 --- a/src/mesa/state_tracker/st_cb_clear.c +++ b/src/mesa/state_tracker/st_cb_clear.c @@ -270,6 +270,7 @@ clear_with_quad(struct gl_context *ctx, unsigned clear_buffers) cso_save_tessctrl_shader(st->cso_context); cso_save_tesseval_shader(st->cso_context); cso_save_geometry_shader(st->cso_context); + cso_save_compute_shader(st->cso_context); cso_save_vertex_elements(st->cso_context); cso_save_aux_vertex_buffer_slot(st->cso_context); @@ -353,6 +354,7 @@ clear_with_quad(struct gl_context *ctx, unsigned clear_buffers) set_fragment_shader(st); cso_set_tessctrl_shader_handle(st->cso_context, NULL); cso_set_tesseval_shader_handle(st->cso_context, NULL); + cso_set_compute_shader_handle(st->cso_context, NULL); if (num_layers > 1) set_vertex_shader_layered(st); @@ -380,6 +382,7 @@ clear_with_quad(struct gl_context *ctx, unsigned clear_buffers) cso_restore_tessctrl_shader(st->cso_context); cso_restore_tesseval_shader(st->cso_context); cso_restore_geometry_shader(st->cso_context); + cso_restore_compute_shader(st->cso_context); cso_restore_vertex_elements(st->cso_context); cso_restore_aux_vertex_buffer_slot(st->cso_context); cso_restore_stream_outputs(st->cso_context); diff --git a/src/mesa/state_tracker/st_cb_drawpixels.c b/src/mesa/state_tracker/st_cb_drawpixels.c index 04a9de0..351edbc 100644 --- a/src/mesa/state_tracker/st_cb_drawpixels.c +++ b/src/mesa/state_tracker/st_cb_drawpixels.c @@ -577,6 +577,7 @@ draw_textured_quad(struct gl_context *ctx, GLint x, GLint y, GLfloat z, cso_save_tessctrl_shader(cso); cso_save_tesseval_shader(cso); cso_save_geometry_shader(cso); + cso_save_compute_shader(cso); cso_save_vertex_elements(cso); cso_save_aux_vertex_buffer_slot(cso); if (write_stencil) { @@ -633,6 +634,7 @@ draw_textured_quad(struct gl_context *ctx, GLint x, GLint y, GLfloat z, cso_set_tessctrl_shader_handle(cso, NULL); cso_set_tesseval_shader_handle(cso, NULL); cso_set_geometry_shader_handle(cso, NULL); + cso_set_compute_shader_handle(cso, NULL); /* user samplers, plus the drawpix samplers */ { @@ -733,6 +735,7 @@ draw_textured_quad(struct gl_context *ctx, GLint x, GLint y, GLfloat z, cso_restore_tessctrl_shader(cso); cso_restore_tesseval_shader(cso); cso_restore_geometry_shader(cso); + cso_restore_compute_shader(cso); cso_restore_vertex_elements(cso); cso_restore_aux_vertex_buffer_slot(cso); cso_restore_stream_outputs(cso); diff --git a/src/mesa/state_tracker/st_cb_drawtex.c b/src/mesa/state_tracker/st_cb_drawtex.c index e6ab77f..a336363 100644 --- a/src/mesa/state_tracker/st_cb_drawtex.c +++ b/src/mesa/state_tracker/st_cb_drawtex.c @@ -236,6 +236,7 @@ st_DrawTex(struct gl_context *ctx, GLfloat x, GLfloat y, GLfloat z, cso_save_tessctrl_shader(cso); cso_save_tesseval_shader(cso); cso_save_geometry_shader(cso); + cso_save_compute_shader(cso); cso_save_vertex_elements(cso); cso_save_aux_vertex_buffer_slot(cso); @@ -247,6 +248,7 @@ st_DrawTex(struct gl_context *ctx, GLfloat x, GLfloat y, GLfloat z, cso_set_tessctrl_shader_handle(cso, NULL); cso_set_tesseval_shader_handle(cso, NULL); cso_set_geometry_shader_handle(cso, NULL); + cso_set_compute_shader_handle(cso, NULL); for (i = 0; i < numAttribs; i++) { velements[i].src_offset = i * 4 * sizeof(float); @@ -290,6 +292,7 @@ st_DrawTex(struct gl_context *ctx, GLfloat x, GLfloat y, GLfloat z, cso_restore_tessctrl_shader(cso); cso_restore_tesseval_shader(cso); cso_restore_geometry_shader(cso); + cso_restore_compute_shader(cso); cso_restore_vertex_elements(cso); cso_restore_aux_vertex_buffer_slot(cso); cso_restore_stream_outputs(cso); -- 2.6.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev