diff options
| -rw-r--r-- | src/gallium/drivers/svga/svga_pipe_blit.c | 1 | ||||
| -rw-r--r-- | src/gallium/drivers/svga/svga_pipe_clear.c | 8 | ||||
| -rw-r--r-- | src/gallium/drivers/svga/svga_screen.c | 3 | 
3 files changed, 8 insertions, 4 deletions
| diff --git a/src/gallium/drivers/svga/svga_pipe_blit.c b/src/gallium/drivers/svga/svga_pipe_blit.c index 2dd99b4631..e742fec4a2 100644 --- a/src/gallium/drivers/svga/svga_pipe_blit.c +++ b/src/gallium/drivers/svga/svga_pipe_blit.c @@ -108,5 +108,4 @@ void  svga_init_blit_functions(struct svga_context *svga)  {     svga->pipe.resource_copy_region = svga_surface_copy; -   svga->pipe.resource_fill_region = util_resource_fill_region;  } diff --git a/src/gallium/drivers/svga/svga_pipe_clear.c b/src/gallium/drivers/svga/svga_pipe_clear.c index cbff95c917..41f239c1a8 100644 --- a/src/gallium/drivers/svga/svga_pipe_clear.c +++ b/src/gallium/drivers/svga/svga_pipe_clear.c @@ -61,9 +61,11 @@ try_clear(struct svga_context *svga,     }     if ((buffers & PIPE_CLEAR_DEPTHSTENCIL) && fb->zsbuf) { -      flags |= SVGA3D_CLEAR_DEPTH; +      if (buffers & PIPE_CLEAR_DEPTH) +         flags |= SVGA3D_CLEAR_DEPTH; -      if (svga->curr.framebuffer.zsbuf->format == PIPE_FORMAT_S8_USCALED_Z24_UNORM) +      if ((svga->curr.framebuffer.zsbuf->format == PIPE_FORMAT_S8_USCALED_Z24_UNORM) && +          (buffers & PIPE_CLEAR_STENCIL))           flags |= SVGA3D_CLEAR_STENCIL;        rect.w = MAX2(rect.w, fb->zsbuf->width); @@ -100,7 +102,7 @@ svga_clear(struct pipe_context *pipe, unsigned buffers, const float *rgba,  {     struct svga_context *svga = svga_context( pipe );     int ret; -    +     if (buffers & PIPE_CLEAR_COLOR)        SVGA_DBG(DEBUG_DMA, "clear sid %p\n",                 svga_surface(svga->curr.framebuffer.cbufs[0])->handle); diff --git a/src/gallium/drivers/svga/svga_screen.c b/src/gallium/drivers/svga/svga_screen.c index 99b419178b..099d8f91df 100644 --- a/src/gallium/drivers/svga/svga_screen.c +++ b/src/gallium/drivers/svga/svga_screen.c @@ -230,6 +230,9 @@ svga_get_paramf(struct pipe_screen *screen, enum pipe_cap param)     case PIPE_CAP_MAX_VS_PREDS:        return svgascreen->use_vs30 ? 1 : 0; +   case PIPE_CAP_DEPTHSTENCIL_CLEAR_SEPARATE: +      return 1; +     default:        return 0;     } | 
