diff options
Diffstat (limited to 'src/gallium/drivers/svga')
-rw-r--r-- | src/gallium/drivers/svga/svga_cmd.c | 18 | ||||
-rw-r--r-- | src/gallium/drivers/svga/svga_cmd.h | 4 |
2 files changed, 22 insertions, 0 deletions
diff --git a/src/gallium/drivers/svga/svga_cmd.c b/src/gallium/drivers/svga/svga_cmd.c index ecf2e9d2ca0..7b78cb73547 100644 --- a/src/gallium/drivers/svga/svga_cmd.c +++ b/src/gallium/drivers/svga/svga_cmd.c @@ -1870,6 +1870,24 @@ SVGA3D_InvalidateGBImagePartial(struct svga_winsys_context *swc, return PIPE_OK; } +enum pipe_error +SVGA3D_InvalidateGBSurface(struct svga_winsys_context *swc, + struct svga_winsys_surface *surface) +{ + SVGA3dCmdInvalidateGBSurface *cmd = + SVGA3D_FIFOReserve(swc, + SVGA_3D_CMD_INVALIDATE_GB_SURFACE, + sizeof *cmd, + 1); /* one relocation */ + if (!cmd) + return PIPE_ERROR_OUT_OF_MEMORY; + + swc->surface_relocation(swc, &cmd->sid, NULL, surface, + SVGA_RELOC_READ | SVGA_RELOC_INTERNAL); + swc->commit(swc); + + return PIPE_OK; +} enum pipe_error SVGA3D_SetGBShaderConstsInline(struct svga_winsys_context *swc, diff --git a/src/gallium/drivers/svga/svga_cmd.h b/src/gallium/drivers/svga/svga_cmd.h index db0f8908e5d..cd2cb6509ea 100644 --- a/src/gallium/drivers/svga/svga_cmd.h +++ b/src/gallium/drivers/svga/svga_cmd.h @@ -299,6 +299,10 @@ SVGA3D_InvalidateGBImagePartial(struct svga_winsys_context *swc, const SVGA3dBox *box, bool invertBox); +enum pipe_error +SVGA3D_InvalidateGBSurface(struct svga_winsys_context *swc, + struct svga_winsys_surface *surface); + enum pipe_error SVGA3D_SetGBShaderConstsInline(struct svga_winsys_context *swc, |