vrend: pass sub_ctx directly to update_frontface_state

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
macos/master
Gert Wollny 4 years ago
parent 71eadba603
commit 963a02a785
  1. 14
      src/vrend_renderer.c

@ -728,7 +728,7 @@ static void vrend_update_scissor_state(struct vrend_context *ctx);
static void vrend_destroy_query_object(void *obj_ptr); static void vrend_destroy_query_object(void *obj_ptr);
static void vrend_finish_context_switch(struct vrend_context *ctx); static void vrend_finish_context_switch(struct vrend_context *ctx);
static void vrend_patch_blend_state(struct vrend_context *ctx); static void vrend_patch_blend_state(struct vrend_context *ctx);
static void vrend_update_frontface_state(struct vrend_context *ctx); static void vrend_update_frontface_state(struct vrend_sub_context *ctx);
static void vrender_get_glsl_version(int *glsl_version); static void vrender_get_glsl_version(int *glsl_version);
static void vrend_destroy_program(struct vrend_linked_shader_program *ent); static void vrend_destroy_program(struct vrend_linked_shader_program *ent);
static void vrend_apply_sampler_state(struct vrend_context *ctx, static void vrend_apply_sampler_state(struct vrend_context *ctx,
@ -3689,6 +3689,7 @@ void vrend_clear(struct vrend_context *ctx,
double depth, unsigned stencil) double depth, unsigned stencil)
{ {
GLbitfield bits = 0; GLbitfield bits = 0;
struct vrend_sub_context *sub_ctx = ctx->sub;
if (ctx->in_error) if (ctx->in_error)
return; return;
@ -3696,7 +3697,7 @@ void vrend_clear(struct vrend_context *ctx,
if (ctx->ctx_switch_pending) if (ctx->ctx_switch_pending)
vrend_finish_context_switch(ctx); vrend_finish_context_switch(ctx);
vrend_update_frontface_state(ctx); vrend_update_frontface_state(sub_ctx);
if (ctx->sub->stencil_state_dirty) if (ctx->sub->stencil_state_dirty)
vrend_update_stencil_state(ctx); vrend_update_stencil_state(ctx);
if (ctx->sub->scissor_state_dirty) if (ctx->sub->scissor_state_dirty)
@ -4535,7 +4536,6 @@ int vrend_draw_vbo(struct vrend_context *ctx,
struct vrend_resource *indirect_params_res = NULL; struct vrend_resource *indirect_params_res = NULL;
struct vrend_sub_context *sub_ctx = ctx->sub; struct vrend_sub_context *sub_ctx = ctx->sub;
if (ctx->in_error) if (ctx->in_error)
return 0; return 0;
@ -4573,7 +4573,7 @@ int vrend_draw_vbo(struct vrend_context *ctx,
if (ctx->ctx_switch_pending) if (ctx->ctx_switch_pending)
vrend_finish_context_switch(ctx); vrend_finish_context_switch(ctx);
vrend_update_frontface_state(ctx); vrend_update_frontface_state(sub_ctx);
if (ctx->sub->stencil_state_dirty) if (ctx->sub->stencil_state_dirty)
vrend_update_stencil_state(ctx); vrend_update_stencil_state(ctx);
if (ctx->sub->scissor_state_dirty) if (ctx->sub->scissor_state_dirty)
@ -5247,12 +5247,12 @@ void vrend_object_bind_dsa(struct vrend_context *ctx,
vrend_hw_emit_dsa(ctx); vrend_hw_emit_dsa(ctx);
} }
static void vrend_update_frontface_state(struct vrend_context *ctx) static void vrend_update_frontface_state(struct vrend_sub_context *sub_ctx)
{ {
struct pipe_rasterizer_state *state = &ctx->sub->rs_state; struct pipe_rasterizer_state *state = &sub_ctx->rs_state;
int front_ccw = state->front_ccw; int front_ccw = state->front_ccw;
front_ccw ^= (ctx->sub->inverted_fbo_content ? 0 : 1); front_ccw ^= (sub_ctx->inverted_fbo_content ? 0 : 1);
if (front_ccw) if (front_ccw)
glFrontFace(GL_CCW); glFrontFace(GL_CCW);
else else

Loading…
Cancel
Save