Module: Mesa Branch: master Commit: c8ef82d65a2c563c1dbafb2a252aca230ab9d1c7 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c8ef82d65a2c563c1dbafb2a252aca230ab9d1c7
Author: Charmaine Lee <charmai...@vmware.com> Date: Thu Sep 1 13:40:34 2016 -0700 svga: add SVGA3d_vgpu10_TransferFromBuffer() Also add the corresponding dump function to dump the TransferFromBuffer command. Reviewed-by: Brian Paul <bri...@vmware.com> --- src/gallium/drivers/svga/svga_cmd.h | 10 +++++++++ src/gallium/drivers/svga/svga_cmd_vgpu10.c | 29 +++++++++++++++++++++++++++ src/gallium/drivers/svga/svgadump/svga_dump.c | 12 +++++++++++ 3 files changed, 51 insertions(+) diff --git a/src/gallium/drivers/svga/svga_cmd.h b/src/gallium/drivers/svga/svga_cmd.h index 47a33ec..db0f890 100644 --- a/src/gallium/drivers/svga/svga_cmd.h +++ b/src/gallium/drivers/svga/svga_cmd.h @@ -668,4 +668,14 @@ SVGA3D_vgpu10_BufferCopy(struct svga_winsys_context *swc, struct svga_winsys_surface *src, struct svga_winsys_surface *dst, unsigned srcx, unsigned dstx, unsigned width); + +enum pipe_error +SVGA3D_vgpu10_TransferFromBuffer(struct svga_winsys_context *swc, + struct svga_winsys_surface *src, + unsigned srcOffset, unsigned srcPitch, + unsigned srcSlicePitch, + struct svga_winsys_surface *dst, + unsigned dstSubResource, + SVGA3dBox *dstBox); + #endif /* __SVGA3D_H__ */ diff --git a/src/gallium/drivers/svga/svga_cmd_vgpu10.c b/src/gallium/drivers/svga/svga_cmd_vgpu10.c index 1f13193..55465f5 100644 --- a/src/gallium/drivers/svga/svga_cmd_vgpu10.c +++ b/src/gallium/drivers/svga/svga_cmd_vgpu10.c @@ -1338,3 +1338,32 @@ SVGA3D_vgpu10_BufferCopy(struct svga_winsys_context *swc, swc->commit(swc); return PIPE_OK; } + +enum pipe_error +SVGA3D_vgpu10_TransferFromBuffer(struct svga_winsys_context *swc, + struct svga_winsys_surface *src, + unsigned srcOffset, unsigned srcPitch, + unsigned srcSlicePitch, + struct svga_winsys_surface *dst, + unsigned dstSubResource, + SVGA3dBox *dstBox) +{ + SVGA3dCmdDXTransferFromBuffer *cmd; + + cmd = SVGA3D_FIFOReserve(swc, SVGA_3D_CMD_DX_TRANSFER_FROM_BUFFER, + sizeof(SVGA3dCmdDXTransferFromBuffer), 2); + + if (!cmd) + return PIPE_ERROR_OUT_OF_MEMORY; + + swc->surface_relocation(swc, &cmd->srcSid, NULL, src, SVGA_RELOC_READ); + swc->surface_relocation(swc, &cmd->destSid, NULL, dst, SVGA_RELOC_WRITE); + cmd->srcOffset = srcOffset; + cmd->srcPitch = srcPitch; + cmd->srcSlicePitch = srcSlicePitch; + cmd->destSubResource = dstSubResource; + cmd->destBox = *dstBox; + + swc->commit(swc); + return PIPE_OK; +} diff --git a/src/gallium/drivers/svga/svgadump/svga_dump.c b/src/gallium/drivers/svga/svgadump/svga_dump.c index 5dc731a..c8e6856 100644 --- a/src/gallium/drivers/svga/svgadump/svga_dump.c +++ b/src/gallium/drivers/svga/svgadump/svga_dump.c @@ -2030,6 +2030,17 @@ SVGA3D_DUMP_HEADER(GenMips) SVGA3D_DUMP_PARAMETER(shaderResourceViewId, u); } +SVGA3D_DUMP_HEADER(TransferFromBuffer) +{ + SVGA3D_DUMP_PARAMETER(srcSid, u); + SVGA3D_DUMP_PARAMETER(srcOffset, u); + SVGA3D_DUMP_PARAMETER(srcPitch, u); + SVGA3D_DUMP_PARAMETER(srcSlicePitch, u); + SVGA3D_DUMP_PARAMETER(destSid, u); + SVGA3D_DUMP_PARAMETER(destSubResource, u); + dump_SVGA3dBox(&cmd->destBox); +} + static void dump_SVGA3dCmdInvalidateGBSurface(const SVGA3dCmdInvalidateGBSurface *cmd) { @@ -2130,6 +2141,7 @@ svga_dump_command(uint32_t cmd_id, const void *data, uint32_t size) SVGA3D_DUMP_CASE_BASIC(BufferCopy, BUFFER_COPY); SVGA3D_DUMP_CASE_BASIC(BufferUpdate, BUFFER_UPDATE); SVGA3D_DUMP_CASE_BASIC(GenMips, GENMIPS); + SVGA3D_DUMP_CASE_BASIC(TransferFromBuffer, TRANSFER_FROM_BUFFER); case SVGA_3D_CMD_DX_SET_RENDERTARGETS: _debug_printf("\tSVGA_3D_CMD_DX_SET_RENDERTARGETS\n"); _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit