From: Marek Olšák <marek.ol...@amd.com> --- src/mesa/state_tracker/st_atom_list.h | 6 +++--- src/mesa/state_tracker/st_atom_rasterizer.c | 6 +++--- src/mesa/state_tracker/st_atom_scissor.c | 2 +- src/mesa/state_tracker/st_atom_viewport.c | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/mesa/state_tracker/st_atom_list.h b/src/mesa/state_tracker/st_atom_list.h index 81a9308..b76854e 100644 --- a/src/mesa/state_tracker/st_atom_list.h +++ b/src/mesa/state_tracker/st_atom_list.h @@ -1,24 +1,21 @@ /* Render (non-compute) states must be first. */ ST_STATE(ST_NEW_DSA, st_update_depth_stencil_alpha) ST_STATE(ST_NEW_CLIP_STATE, st_update_clip) ST_STATE(ST_NEW_FS_STATE, st_update_fp) ST_STATE(ST_NEW_GS_STATE, st_update_gp) ST_STATE(ST_NEW_TES_STATE, st_update_tep) ST_STATE(ST_NEW_TCS_STATE, st_update_tcp) ST_STATE(ST_NEW_VS_STATE, st_update_vp) -ST_STATE(ST_NEW_RASTERIZER, st_update_rasterizer) ST_STATE(ST_NEW_POLY_STIPPLE, st_update_polygon_stipple) -ST_STATE(ST_NEW_VIEWPORT, st_update_viewport) -ST_STATE(ST_NEW_SCISSOR, st_update_scissor) ST_STATE(ST_NEW_WINDOW_RECTANGLES, st_update_window_rectangles) ST_STATE(ST_NEW_BLEND, st_update_blend) ST_STATE(ST_NEW_BLEND_COLOR, st_update_blend_color) ST_STATE(ST_NEW_VS_SAMPLER_VIEWS, st_update_vertex_textures) ST_STATE(ST_NEW_FS_SAMPLER_VIEWS, st_update_fragment_textures) ST_STATE(ST_NEW_GS_SAMPLER_VIEWS, st_update_geometry_textures) ST_STATE(ST_NEW_TCS_SAMPLER_VIEWS, st_update_tessctrl_textures) ST_STATE(ST_NEW_TES_SAMPLER_VIEWS, st_update_tesseval_textures) @@ -29,22 +26,25 @@ ST_STATE(ST_NEW_TES_SAMPLERS, st_update_tesseval_samplers) /* depends on update_ ST_STATE(ST_NEW_GS_SAMPLERS, st_update_geometry_samplers) /* depends on update_*_texture for swizzle */ ST_STATE(ST_NEW_FS_SAMPLERS, st_update_fragment_samplers) /* depends on update_*_texture for swizzle */ ST_STATE(ST_NEW_VS_IMAGES, st_bind_vs_images) ST_STATE(ST_NEW_TCS_IMAGES, st_bind_tcs_images) ST_STATE(ST_NEW_TES_IMAGES, st_bind_tes_images) ST_STATE(ST_NEW_GS_IMAGES, st_bind_gs_images) ST_STATE(ST_NEW_FS_IMAGES, st_bind_fs_images) ST_STATE(ST_NEW_FB_STATE, st_update_framebuffer_state) /* depends on update_*_texture and bind_*_images */ +ST_STATE(ST_NEW_RASTERIZER, st_update_rasterizer) /* depends on update_framebuffer_state */ ST_STATE(ST_NEW_SAMPLE_MASK, st_update_sample_mask) /* depends on update_framebuffer_state */ ST_STATE(ST_NEW_SAMPLE_SHADING, st_update_sample_shading) +ST_STATE(ST_NEW_SCISSOR, st_update_scissor) /* depends on update_framebuffer_state */ +ST_STATE(ST_NEW_VIEWPORT, st_update_viewport) /* depends on update_framebuffer_state */ ST_STATE(ST_NEW_VS_CONSTANTS, st_update_vs_constants) ST_STATE(ST_NEW_TCS_CONSTANTS, st_update_tcs_constants) ST_STATE(ST_NEW_TES_CONSTANTS, st_update_tes_constants) ST_STATE(ST_NEW_GS_CONSTANTS, st_update_gs_constants) ST_STATE(ST_NEW_FS_CONSTANTS, st_update_fs_constants) ST_STATE(ST_NEW_VS_UBOS, st_bind_vs_ubos) ST_STATE(ST_NEW_TCS_UBOS, st_bind_tcs_ubos) ST_STATE(ST_NEW_TES_UBOS, st_bind_tes_ubos) diff --git a/src/mesa/state_tracker/st_atom_rasterizer.c b/src/mesa/state_tracker/st_atom_rasterizer.c index 6e17562..e388960 100644 --- a/src/mesa/state_tracker/st_atom_rasterizer.c +++ b/src/mesa/state_tracker/st_atom_rasterizer.c @@ -79,21 +79,21 @@ void st_update_rasterizer( struct st_context *st ) if (ctx->Transform.ClipOrigin == GL_UPPER_LEFT) { raster->front_ccw ^= 1; } /* * Gallium's surfaces are Y=0=TOP orientation. OpenGL is the * opposite. Window system surfaces are Y=0=TOP. Mesa's FBOs * must match OpenGL conventions so FBOs use Y=0=BOTTOM. In that * case, we must invert Y and flip the notion of front vs. back. */ - if (st_fb_orientation(ctx->DrawBuffer) == Y_0_BOTTOM) { + if (st->state.fb_orientation == Y_0_BOTTOM) { /* Drawing to an FBO. The viewport will be inverted. */ raster->front_ccw ^= 1; } } /* _NEW_LIGHT */ raster->flatshade = ctx->Light.ShadeModel == GL_FLAT; raster->flatshade_first = ctx->Light.ProvokingVertex == @@ -167,21 +167,21 @@ void st_update_rasterizer( struct st_context *st ) /* _NEW_POINT */ raster->point_size = ctx->Point.Size; raster->point_smooth = !ctx->Point.PointSprite && ctx->Point.SmoothFlag; /* _NEW_POINT | _NEW_PROGRAM */ if (ctx->Point.PointSprite) { /* origin */ if ((ctx->Point.SpriteOrigin == GL_UPPER_LEFT) ^ - (st_fb_orientation(ctx->DrawBuffer) == Y_0_BOTTOM)) + (st->state.fb_orientation == Y_0_BOTTOM)) raster->sprite_coord_mode = PIPE_SPRITE_COORD_UPPER_LEFT; else raster->sprite_coord_mode = PIPE_SPRITE_COORD_LOWER_LEFT; /* Coord replacement flags. If bit 'k' is set that means * that we need to replace GENERIC[k] attrib with an automatically * computed texture coord. */ raster->sprite_coord_enable = ctx->Point.CoordReplace & ((1u << MAX_TEXTURE_COORD_UNITS) - 1); @@ -262,21 +262,21 @@ void st_update_rasterizer( struct st_context *st ) _mesa_geometric_samples(ctx->DrawBuffer) > 1; /* _NEW_SCISSOR */ raster->scissor = ctx->Scissor.EnableFlags; /* _NEW_FRAG_CLAMP */ raster->clamp_fragment_color = !st->clamp_frag_color_in_shader && ctx->Color._ClampFragmentColor; raster->half_pixel_center = 1; - if (st_fb_orientation(ctx->DrawBuffer) == Y_0_TOP) + if (st->state.fb_orientation == Y_0_TOP) raster->bottom_edge_rule = 1; /* _NEW_TRANSFORM */ if (ctx->Transform.ClipOrigin == GL_UPPER_LEFT) raster->bottom_edge_rule ^= 1; /* ST_NEW_RASTERIZER */ raster->rasterizer_discard = ctx->RasterDiscard; if (st->edgeflag_culls_prims) { /* All edge flags are FALSE. Cull the affected faces. */ diff --git a/src/mesa/state_tracker/st_atom_scissor.c b/src/mesa/state_tracker/st_atom_scissor.c index d3450be..ccd6e8e 100644 --- a/src/mesa/state_tracker/st_atom_scissor.c +++ b/src/mesa/state_tracker/st_atom_scissor.c @@ -75,21 +75,21 @@ st_update_scissor( struct st_context *st ) scissor[i].maxy = ymax; /* check for null space */ if (scissor[i].minx >= scissor[i].maxx || scissor[i].miny >= scissor[i].maxy) scissor[i].minx = scissor[i].miny = scissor[i].maxx = scissor[i].maxy = 0; } /* Now invert Y if needed. * Gallium drivers use the convention Y=0=top for surfaces. */ - if (st_fb_orientation(fb) == Y_0_TOP) { + if (st->state.fb_orientation == Y_0_TOP) { miny = fb->Height - scissor[i].maxy; maxy = fb->Height - scissor[i].miny; scissor[i].miny = miny; scissor[i].maxy = maxy; } if (memcmp(&scissor[i], &st->state.scissor[i], sizeof(scissor[0])) != 0) { /* state has changed */ st->state.scissor[i] = scissor[i]; /* struct copy */ changed = true; diff --git a/src/mesa/state_tracker/st_atom_viewport.c b/src/mesa/state_tracker/st_atom_viewport.c index 900f061..1fc8908 100644 --- a/src/mesa/state_tracker/st_atom_viewport.c +++ b/src/mesa/state_tracker/st_atom_viewport.c @@ -40,21 +40,21 @@ * - window pos/size or FBO size */ void st_update_viewport( struct st_context *st ) { struct gl_context *ctx = st->ctx; GLfloat yScale, yBias; unsigned i; /* _NEW_BUFFERS */ - if (st_fb_orientation(ctx->DrawBuffer) == Y_0_TOP) { + if (st->state.fb_orientation == Y_0_TOP) { /* Drawing to a window. The corresponding gallium surface uses * Y=0=TOP but OpenGL is Y=0=BOTTOM. So we need to invert the viewport. */ yScale = -1; yBias = (GLfloat)ctx->DrawBuffer->Height; } else { /* Drawing to an FBO where Y=0=BOTTOM, like OpenGL - don't invert */ yScale = 1.0; yBias = 0.0; -- 2.7.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev