mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 08:50:13 +01:00
svga: add SVGA3d_vgpu10_TransferFromBuffer()
Also add the corresponding dump function to dump the TransferFromBuffer command. Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
parent
2a4b019239
commit
c8ef82d65a
3 changed files with 51 additions and 0 deletions
|
|
@ -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__ */
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue