st/mesa: use new cso_save/restore_state() functions
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
This commit is contained in:
@@ -213,18 +213,18 @@ setup_render_state(struct gl_context *ctx,
|
||||
COPY_4V(ctx->Current.Attrib[VERT_ATTRIB_COLOR0], colorSave);
|
||||
}
|
||||
|
||||
cso_save_rasterizer(cso);
|
||||
cso_save_fragment_samplers(cso);
|
||||
cso_save_fragment_sampler_views(cso);
|
||||
cso_save_viewport(cso);
|
||||
cso_save_fragment_shader(cso);
|
||||
cso_save_stream_outputs(cso);
|
||||
cso_save_vertex_shader(cso);
|
||||
cso_save_tessctrl_shader(cso);
|
||||
cso_save_tesseval_shader(cso);
|
||||
cso_save_geometry_shader(cso);
|
||||
cso_save_vertex_elements(cso);
|
||||
cso_save_aux_vertex_buffer_slot(cso);
|
||||
cso_save_state(cso, (CSO_BIT_RASTERIZER |
|
||||
CSO_BIT_FRAGMENT_SAMPLERS |
|
||||
CSO_BIT_FRAGMENT_SAMPLER_VIEWS |
|
||||
CSO_BIT_VIEWPORT |
|
||||
CSO_BIT_FRAGMENT_SHADER |
|
||||
CSO_BIT_STREAM_OUTPUTS |
|
||||
CSO_BIT_TESSCTRL_SHADER |
|
||||
CSO_BIT_TESSEVAL_SHADER |
|
||||
CSO_BIT_GEOMETRY_SHADER |
|
||||
CSO_BIT_VERTEX_ELEMENTS |
|
||||
CSO_BIT_VERTEX_SHADER |
|
||||
CSO_BIT_AUX_VERTEX_BUFFER_SLOT));
|
||||
|
||||
/* rasterizer state: just scissor */
|
||||
st->bitmap.rasterizer.scissor = ctx->Scissor.EnableFlags & 1;
|
||||
@@ -286,18 +286,7 @@ restore_render_state(struct gl_context *ctx)
|
||||
struct st_context *st = st_context(ctx);
|
||||
struct cso_context *cso = st->cso_context;
|
||||
|
||||
cso_restore_rasterizer(cso);
|
||||
cso_restore_fragment_samplers(cso);
|
||||
cso_restore_fragment_sampler_views(cso);
|
||||
cso_restore_viewport(cso);
|
||||
cso_restore_fragment_shader(cso);
|
||||
cso_restore_vertex_shader(cso);
|
||||
cso_restore_tessctrl_shader(cso);
|
||||
cso_restore_tesseval_shader(cso);
|
||||
cso_restore_geometry_shader(cso);
|
||||
cso_restore_vertex_elements(cso);
|
||||
cso_restore_aux_vertex_buffer_slot(cso);
|
||||
cso_restore_stream_outputs(cso);
|
||||
cso_restore_state(cso);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -196,21 +196,21 @@ clear_with_quad(struct gl_context *ctx, unsigned clear_buffers)
|
||||
x1, y1);
|
||||
*/
|
||||
|
||||
cso_save_blend(cso);
|
||||
cso_save_stencil_ref(cso);
|
||||
cso_save_depth_stencil_alpha(cso);
|
||||
cso_save_rasterizer(cso);
|
||||
cso_save_sample_mask(cso);
|
||||
cso_save_min_samples(cso);
|
||||
cso_save_viewport(cso);
|
||||
cso_save_fragment_shader(cso);
|
||||
cso_save_stream_outputs(cso);
|
||||
cso_save_vertex_shader(cso);
|
||||
cso_save_tessctrl_shader(cso);
|
||||
cso_save_tesseval_shader(cso);
|
||||
cso_save_geometry_shader(cso);
|
||||
cso_save_vertex_elements(cso);
|
||||
cso_save_aux_vertex_buffer_slot(cso);
|
||||
cso_save_state(cso, (CSO_BIT_BLEND |
|
||||
CSO_BIT_STENCIL_REF |
|
||||
CSO_BIT_DEPTH_STENCIL_ALPHA |
|
||||
CSO_BIT_RASTERIZER |
|
||||
CSO_BIT_SAMPLE_MASK |
|
||||
CSO_BIT_MIN_SAMPLES |
|
||||
CSO_BIT_VIEWPORT |
|
||||
CSO_BIT_FRAGMENT_SHADER |
|
||||
CSO_BIT_STREAM_OUTPUTS |
|
||||
CSO_BIT_VERTEX_SHADER |
|
||||
CSO_BIT_TESSCTRL_SHADER |
|
||||
CSO_BIT_TESSEVAL_SHADER |
|
||||
CSO_BIT_GEOMETRY_SHADER |
|
||||
CSO_BIT_VERTEX_ELEMENTS |
|
||||
CSO_BIT_AUX_VERTEX_BUFFER_SLOT));
|
||||
|
||||
/* blend state: RGBA masking */
|
||||
{
|
||||
@@ -306,21 +306,7 @@ clear_with_quad(struct gl_context *ctx, unsigned clear_buffers)
|
||||
}
|
||||
|
||||
/* Restore pipe state */
|
||||
cso_restore_blend(cso);
|
||||
cso_restore_stencil_ref(cso);
|
||||
cso_restore_depth_stencil_alpha(cso);
|
||||
cso_restore_rasterizer(cso);
|
||||
cso_restore_sample_mask(cso);
|
||||
cso_restore_min_samples(cso);
|
||||
cso_restore_viewport(cso);
|
||||
cso_restore_fragment_shader(cso);
|
||||
cso_restore_vertex_shader(cso);
|
||||
cso_restore_tessctrl_shader(cso);
|
||||
cso_restore_tesseval_shader(cso);
|
||||
cso_restore_geometry_shader(cso);
|
||||
cso_restore_vertex_elements(cso);
|
||||
cso_restore_aux_vertex_buffer_slot(cso);
|
||||
cso_restore_stream_outputs(cso);
|
||||
cso_restore_state(cso);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -459,6 +459,7 @@ draw_textured_quad(struct gl_context *ctx, GLint x, GLint y, GLfloat z,
|
||||
GLfloat x0, y0, x1, y1;
|
||||
GLsizei maxSize;
|
||||
boolean normalized = sv[0]->texture->target == PIPE_TEXTURE_2D;
|
||||
unsigned cso_state_mask;
|
||||
|
||||
assert(sv[0]->texture->target == st->internal_target);
|
||||
|
||||
@@ -471,22 +472,23 @@ draw_textured_quad(struct gl_context *ctx, GLint x, GLint y, GLfloat z,
|
||||
assert(width <= maxSize);
|
||||
assert(height <= maxSize);
|
||||
|
||||
cso_save_rasterizer(cso);
|
||||
cso_save_viewport(cso);
|
||||
cso_save_fragment_samplers(cso);
|
||||
cso_save_fragment_sampler_views(cso);
|
||||
cso_save_fragment_shader(cso);
|
||||
cso_save_stream_outputs(cso);
|
||||
cso_save_vertex_shader(cso);
|
||||
cso_save_tessctrl_shader(cso);
|
||||
cso_save_tesseval_shader(cso);
|
||||
cso_save_geometry_shader(cso);
|
||||
cso_save_vertex_elements(cso);
|
||||
cso_save_aux_vertex_buffer_slot(cso);
|
||||
cso_state_mask = (CSO_BIT_RASTERIZER |
|
||||
CSO_BIT_VIEWPORT |
|
||||
CSO_BIT_FRAGMENT_SAMPLERS |
|
||||
CSO_BIT_FRAGMENT_SAMPLER_VIEWS |
|
||||
CSO_BIT_FRAGMENT_SHADER |
|
||||
CSO_BIT_STREAM_OUTPUTS |
|
||||
CSO_BIT_VERTEX_SHADER |
|
||||
CSO_BIT_TESSCTRL_SHADER |
|
||||
CSO_BIT_TESSEVAL_SHADER |
|
||||
CSO_BIT_GEOMETRY_SHADER |
|
||||
CSO_BIT_VERTEX_ELEMENTS |
|
||||
CSO_BIT_AUX_VERTEX_BUFFER_SLOT);
|
||||
if (write_stencil) {
|
||||
cso_save_depth_stencil_alpha(cso);
|
||||
cso_save_blend(cso);
|
||||
cso_state_mask |= (CSO_BIT_DEPTH_STENCIL_ALPHA |
|
||||
CSO_BIT_BLEND);
|
||||
}
|
||||
cso_save_state(cso, cso_state_mask);
|
||||
|
||||
/* rasterizer state: just scissor */
|
||||
{
|
||||
@@ -642,22 +644,7 @@ draw_textured_quad(struct gl_context *ctx, GLint x, GLint y, GLfloat z,
|
||||
}
|
||||
|
||||
/* restore state */
|
||||
cso_restore_rasterizer(cso);
|
||||
cso_restore_viewport(cso);
|
||||
cso_restore_fragment_samplers(cso);
|
||||
cso_restore_fragment_sampler_views(cso);
|
||||
cso_restore_fragment_shader(cso);
|
||||
cso_restore_vertex_shader(cso);
|
||||
cso_restore_tessctrl_shader(cso);
|
||||
cso_restore_tesseval_shader(cso);
|
||||
cso_restore_geometry_shader(cso);
|
||||
cso_restore_vertex_elements(cso);
|
||||
cso_restore_aux_vertex_buffer_slot(cso);
|
||||
cso_restore_stream_outputs(cso);
|
||||
if (write_stencil) {
|
||||
cso_restore_depth_stencil_alpha(cso);
|
||||
cso_restore_blend(cso);
|
||||
}
|
||||
cso_restore_state(cso);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -229,15 +229,14 @@ st_DrawTex(struct gl_context *ctx, GLfloat x, GLfloat y, GLfloat z,
|
||||
#undef SET_ATTRIB
|
||||
}
|
||||
|
||||
|
||||
cso_save_viewport(cso);
|
||||
cso_save_stream_outputs(cso);
|
||||
cso_save_vertex_shader(cso);
|
||||
cso_save_tessctrl_shader(cso);
|
||||
cso_save_tesseval_shader(cso);
|
||||
cso_save_geometry_shader(cso);
|
||||
cso_save_vertex_elements(cso);
|
||||
cso_save_aux_vertex_buffer_slot(cso);
|
||||
cso_save_state(cso, (CSO_BIT_VIEWPORT |
|
||||
CSO_BIT_STREAM_OUTPUTS |
|
||||
CSO_BIT_VERTEX_SHADER |
|
||||
CSO_BIT_TESSCTRL_SHADER |
|
||||
CSO_BIT_TESSEVAL_SHADER |
|
||||
CSO_BIT_GEOMETRY_SHADER |
|
||||
CSO_BIT_VERTEX_ELEMENTS |
|
||||
CSO_BIT_AUX_VERTEX_BUFFER_SLOT));
|
||||
|
||||
{
|
||||
void *vs = lookup_shader(pipe, numAttribs,
|
||||
@@ -285,14 +284,7 @@ st_DrawTex(struct gl_context *ctx, GLfloat x, GLfloat y, GLfloat z,
|
||||
pipe_resource_reference(&vbuffer, NULL);
|
||||
|
||||
/* restore state */
|
||||
cso_restore_viewport(cso);
|
||||
cso_restore_vertex_shader(cso);
|
||||
cso_restore_tessctrl_shader(cso);
|
||||
cso_restore_tesseval_shader(cso);
|
||||
cso_restore_geometry_shader(cso);
|
||||
cso_restore_vertex_elements(cso);
|
||||
cso_restore_aux_vertex_buffer_slot(cso);
|
||||
cso_restore_stream_outputs(cso);
|
||||
cso_restore_state(cso);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user