svga: add SVGA3D_vgpu10_BufferCopy()

Acked-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
This commit is contained in:
Brian Paul
2016-06-22 20:38:06 -06:00
parent 88a344253c
commit 29a38f37ee
2 changed files with 30 additions and 0 deletions
+6
View File
@@ -642,4 +642,10 @@ enum pipe_error
SVGA3D_vgpu10_GenMips(struct svga_winsys_context *swc,
const SVGA3dShaderResourceViewId shaderResourceViewId,
struct svga_winsys_surface *view);
enum pipe_error
SVGA3D_vgpu10_BufferCopy(struct svga_winsys_context *swc,
struct svga_winsys_surface *src,
struct svga_winsys_surface *dst,
unsigned srcx, unsigned dstx, unsigned width);
#endif /* __SVGA3D_H__ */
@@ -1314,3 +1314,27 @@ SVGA3D_vgpu10_GenMips(struct svga_winsys_context *swc,
swc->commit(swc);
return PIPE_OK;
}
enum pipe_error
SVGA3D_vgpu10_BufferCopy(struct svga_winsys_context *swc,
struct svga_winsys_surface *src,
struct svga_winsys_surface *dst,
unsigned srcx, unsigned dstx, unsigned width)
{
SVGA3dCmdDXBufferCopy *cmd;
cmd = SVGA3D_FIFOReserve(swc, SVGA_3D_CMD_DX_BUFFER_COPY, sizeof *cmd, 2);
if (!cmd)
return PIPE_ERROR_OUT_OF_MEMORY;
swc->surface_relocation(swc, &cmd->dest, NULL, dst, SVGA_RELOC_WRITE);
swc->surface_relocation(swc, &cmd->src, NULL, src, SVGA_RELOC_READ);
cmd->destX = dstx;
cmd->srcX = srcx;
cmd->width = width;
swc->commit(swc);
return PIPE_OK;
}