On Thu, Mar 30, 2017 at 5:40 PM, Lyude <ly...@redhat.com> wrote: > This enables support for the GL_NV_fill_rectangle extension on the > GM200+ for Desktop OpenGL. > > Signed-off-by: Lyude <ly...@redhat.com> > > Changes since v1: > - Fix commit message > - Add note to reldocs > > Signed-off-by: Lyude <ly...@redhat.com> > --- > docs/relnotes/17.1.0.html | 1 + > src/gallium/drivers/nouveau/nvc0/nvc0_3d.xml.h | 3 +++ > src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 3 ++- > src/gallium/drivers/nouveau/nvc0/nvc0_state.c | 4 ++++ > src/gallium/drivers/nouveau/nvc0/nvc0_stateobj.h | 2 +- > 5 files changed, 11 insertions(+), 2 deletions(-) > > diff --git a/docs/relnotes/17.1.0.html b/docs/relnotes/17.1.0.html > index ada1e38..e0014bb 100644 > --- a/docs/relnotes/17.1.0.html > +++ b/docs/relnotes/17.1.0.html > @@ -48,6 +48,7 @@ Note: some of the new features are only available with > certain drivers. > <li>GL_ARB_transform_feedback2 on i965/gen6</li> > <li>GL_ARB_transform_feedback_overflow_query on i965/gen6+</li> > <li>Geometry shaders enabled on swr</li> > +<li>GL_NV_fill_rectangle on nvc0</li>
Sort please. > </ul> > > <h2>Bug fixes</h2> > diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_3d.xml.h > b/src/gallium/drivers/nouveau/nvc0/nvc0_3d.xml.h > index 1be5952..accde94 100644 > --- a/src/gallium/drivers/nouveau/nvc0/nvc0_3d.xml.h > +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_3d.xml.h > @@ -772,6 +772,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. > #define NVC0_3D_VTX_ATTR_MASK_UNK0DD0_ALT__ESIZE 0x00000004 > #define NVC0_3D_VTX_ATTR_MASK_UNK0DD0_ALT__LEN 0x00000004 > > +#define NVC0_3D_FILL_RECTANGLE 0x0000113c > +#define NVC0_3D_FILL_RECTANGLE_ENABLE 0x00000002 > + > #define NVC0_3D_UNK1140 0x00001140 > > #define NVC0_3D_UNK1144 0x00001144 > diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c > b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c > index 945101b..f0e4e12 100644 > --- a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c > +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c > @@ -256,6 +256,8 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum > pipe_cap param) > return nouveau_screen(pscreen)->vram_domain & NOUVEAU_BO_VRAM ? 1 : 0; > case PIPE_CAP_TGSI_FS_FBFETCH: > return class_3d >= NVE4_3D_CLASS; /* needs testing on fermi */ > + case PIPE_CAP_POLYGON_MODE_FILL_RECTANGLE: > + return (class_3d >= GM200_3D_CLASS); Still unnecessary parens. > > /* unsupported caps */ > case PIPE_CAP_TGSI_FS_COORD_ORIGIN_LOWER_LEFT: > @@ -285,7 +287,6 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum > pipe_cap param) > case PIPE_CAP_NATIVE_FENCE_FD: > case PIPE_CAP_GLSL_OPTIMIZE_CONSERVATIVELY: > case PIPE_CAP_INT64_DIVMOD: > - case PIPE_CAP_POLYGON_MODE_FILL_RECTANGLE: > return 0; > > case PIPE_CAP_VENDOR_ID: > diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_state.c > b/src/gallium/drivers/nouveau/nvc0/nvc0_state.c > index 32233a5..803843b 100644 > --- a/src/gallium/drivers/nouveau/nvc0/nvc0_state.c > +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_state.c > @@ -261,6 +261,10 @@ nvc0_rasterizer_state_create(struct pipe_context *pipe, > SB_IMMED_3D(so, POINT_SPRITE_ENABLE, cso->point_quad_rasterization); > SB_IMMED_3D(so, POINT_SMOOTH_ENABLE, cso->point_smooth); > > + SB_IMMED_3D(so, FILL_RECTANGLE, > + cso->fill_front == PIPE_POLYGON_MODE_FILL_RECTANGLE ? > + NVC0_3D_FILL_RECTANGLE_ENABLE : 0); Oh, I forgot to mention this last time, but ... this will generate errors on pre-GM200 GPUs. Please stick this in a if (foo->class_3d >= GM204_3D_CLASS) > + > SB_BEGIN_3D(so, MACRO_POLYGON_MODE_FRONT, 1); > SB_DATA (so, nvgl_polygon_mode(cso->fill_front)); > SB_BEGIN_3D(so, MACRO_POLYGON_MODE_BACK, 1); > diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_stateobj.h > b/src/gallium/drivers/nouveau/nvc0/nvc0_stateobj.h > index 054b1e7..3006ed6 100644 > --- a/src/gallium/drivers/nouveau/nvc0/nvc0_stateobj.h > +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_stateobj.h > @@ -23,7 +23,7 @@ struct nvc0_blend_stateobj { > struct nvc0_rasterizer_stateobj { > struct pipe_rasterizer_state pipe; > int size; > - uint32_t state[42]; > + uint32_t state[43]; > }; > > struct nvc0_zsa_stateobj { > -- > 2.9.3 > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev