I think the Mesa flag should be _NEW_TRANSFORM and not _NEW_VIEWPORT. This should be corrected in one of the previous patches. Using _NEW_TRANSFORM will avoid the dependency on _NEW_VIEWPORT in the rasterizer state.
Marek On Fri, Oct 24, 2014 at 9:26 AM, <mathias.froehl...@gmx.net> wrote: > From: Mathias Fröhlich <mathias.froehl...@gmx.net> > > Gallium should be prepared fine for ARB_clip_control. > So enable this and mention it in the release notes. > > v2: > Only enable for drivers announcing the freshly introduced > PIPE_CAP_CLIP_HALFZ capability. > > v3: > Use extension enable infrastructure to connect PIPE_CAP_CLIP_HALFZ > with ARB_clip_control. > > Signed-off-by: Mathias Froehlich <mathias.froehl...@web.de> > --- > docs/GL3.txt | 2 +- > docs/relnotes/10.4.html | 1 + > src/mesa/state_tracker/st_atom_rasterizer.c | 14 +++++++++++++- > src/mesa/state_tracker/st_extensions.c | 1 + > 4 files changed, 16 insertions(+), 2 deletions(-) > > diff --git a/docs/GL3.txt b/docs/GL3.txt > index 07d1d2c..6a988d5 100644 > --- a/docs/GL3.txt > +++ b/docs/GL3.txt > @@ -187,7 +187,7 @@ GL 4.4, GLSL 4.40: > GL 4.5, GLSL 4.50: > > GL_ARB_ES3_1_compatibility not started > - GL_ARB_clip_control not started > + GL_ARB_clip_control DONE (llvmpipe, > softpipe, r300, r600, radeonsi) > GL_ARB_conditional_render_inverted DONE (i965, nvc0, > llvmpipe, softpipe) > GL_ARB_cull_distance not started > GL_ARB_derivative_control DONE (i965, nv50, > nvc0, r600) > diff --git a/docs/relnotes/10.4.html b/docs/relnotes/10.4.html > index 64cbfae..67c3087 100644 > --- a/docs/relnotes/10.4.html > +++ b/docs/relnotes/10.4.html > @@ -46,6 +46,7 @@ Note: some of the new features are only available with > certain drivers. > <ul> > <li>GL_ARB_sample_shading on r600</li> > <li>GL_ARB_texture_view on nv50, nvc0</li> > +<li>GL_ARB_clip_control on llvmpipe, softpipe, r300, r600, radeonsi</li> > </ul> > > > diff --git a/src/mesa/state_tracker/st_atom_rasterizer.c > b/src/mesa/state_tracker/st_atom_rasterizer.c > index dfa728b..2f0886e 100644 > --- a/src/mesa/state_tracker/st_atom_rasterizer.c > +++ b/src/mesa/state_tracker/st_atom_rasterizer.c > @@ -72,6 +72,11 @@ static void update_raster_state( struct st_context *st ) > { > raster->front_ccw = (ctx->Polygon.FrontFace == GL_CCW); > > + /* _NEW_VIEWPORT */ > + if (ctx->Transform.Origin == 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 > @@ -241,6 +246,12 @@ static void update_raster_state( struct st_context *st ) > raster->half_pixel_center = 1; > if (st_fb_orientation(ctx->DrawBuffer) == Y_0_TOP) > raster->bottom_edge_rule = 1; > + /* _NEW_VIEWPORT */ > + if (ctx->Transform.Origin == GL_UPPER_LEFT) > + raster->bottom_edge_rule ^= 1; > + > + /* _NEW_VIEWPORT */ > + raster->clip_halfz = (ctx->Transform.Depth == GL_ZERO_TO_ONE); > > /* ST_NEW_RASTERIZER */ > raster->rasterizer_discard = ctx->RasterDiscard; > @@ -272,7 +283,8 @@ const struct st_tracked_state st_update_rasterizer = { > _NEW_PROGRAM | > _NEW_SCISSOR | > _NEW_FRAG_CLAMP | > - _NEW_TRANSFORM), /* mesa state dependencies*/ > + _NEW_TRANSFORM | > + _NEW_VIEWPORT), /* mesa state dependencies*/ > (ST_NEW_VERTEX_PROGRAM | > ST_NEW_RASTERIZER), /* state tracker dependencies */ > }, > diff --git a/src/mesa/state_tracker/st_extensions.c > b/src/mesa/state_tracker/st_extensions.c > index 78bfe30..aff3dde 100644 > --- a/src/mesa/state_tracker/st_extensions.c > +++ b/src/mesa/state_tracker/st_extensions.c > @@ -463,6 +463,7 @@ void st_init_extensions(struct pipe_screen *screen, > { o(ARB_derivative_control), > PIPE_CAP_TGSI_FS_FINE_DERIVATIVE }, > { o(ARB_conditional_render_inverted), > PIPE_CAP_CONDITIONAL_RENDER_INVERTED }, > { o(ARB_texture_view), PIPE_CAP_SAMPLER_VIEW_TARGET > }, > + { o(ARB_clip_control), PIPE_CAP_CLIP_HALFZ > }, > }; > > /* Required: render target and sampler support */ > -- > 1.9.3 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev