diff options
| author | Xiang, Haihao <haihao.xiang@intel.com> | 2010-12-01 16:59:36 +0800 | 
|---|---|---|
| committer | Xiang, Haihao <haihao.xiang@intel.com> | 2010-12-02 09:54:35 +0800 | 
| commit | 32e1e591467d9a28c2ac4d2e17af7be2dc429d43 (patch) | |
| tree | 0b1fdda04cd7b83a9fe3748480929d4161b5570b /src | |
| parent | de3ff5af49369d187d88e5399f388c6e48c5384f (diff) | |
i965: add support for polygon mode on Sandybridge.
This fixes some mesa demos such as fslight/engine in wireframe mode.
Diffstat (limited to 'src')
| -rw-r--r-- | src/mesa/drivers/dri/i965/gen6_sf_state.c | 42 | 
1 files changed, 42 insertions, 0 deletions
| diff --git a/src/mesa/drivers/dri/i965/gen6_sf_state.c b/src/mesa/drivers/dri/i965/gen6_sf_state.c index 471067e8f0..06ac5d49a0 100644 --- a/src/mesa/drivers/dri/i965/gen6_sf_state.c +++ b/src/mesa/drivers/dri/i965/gen6_sf_state.c @@ -99,6 +99,48 @@ upload_sf_state(struct brw_context *brw)     if (ctx->Polygon.OffsetFill)         dw2 |= GEN6_SF_GLOBAL_DEPTH_OFFSET_SOLID; +   if (ctx->Polygon.OffsetLine) +       dw2 |= GEN6_SF_GLOBAL_DEPTH_OFFSET_WIREFRAME; + +   if (ctx->Polygon.OffsetPoint) +       dw2 |= GEN6_SF_GLOBAL_DEPTH_OFFSET_POINT; + +   switch (ctx->Polygon.FrontMode) { +   case GL_FILL: +       dw2 |= GEN6_SF_FRONT_SOLID; +       break; + +   case GL_LINE: +       dw2 |= GEN6_SF_FRONT_WIREFRAME; +       break; + +   case GL_POINT: +       dw2 |= GEN6_SF_FRONT_POINT; +       break; + +   default: +       assert(0); +       break; +   } + +   switch (ctx->Polygon.BackMode) { +   case GL_FILL: +       dw2 |= GEN6_SF_BACK_SOLID; +       break; + +   case GL_LINE: +       dw2 |= GEN6_SF_BACK_WIREFRAME; +       break; + +   case GL_POINT: +       dw2 |= GEN6_SF_BACK_POINT; +       break; + +   default: +       assert(0); +       break; +   } +     /* _NEW_SCISSOR */     if (ctx->Scissor.Enabled)        dw3 |= GEN6_SF_SCISSOR_ENABLE; | 
