mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 02:38:04 +02:00
svga: add a helper function to send ResolveCopy command
Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
parent
9a24b08a49
commit
2d39e6d0c8
2 changed files with 40 additions and 6 deletions
|
|
@ -685,9 +685,16 @@ SVGA3D_vgpu10_TransferFromBuffer(struct svga_winsys_context *swc,
|
|||
/*Cap2 commands*/
|
||||
enum pipe_error
|
||||
SVGA3D_vgpu10_IntraSurfaceCopy(struct svga_winsys_context *swc,
|
||||
struct svga_winsys_surface *src,
|
||||
unsigned level, unsigned face,
|
||||
const SVGA3dCopyBox *box);
|
||||
struct svga_winsys_surface *src,
|
||||
unsigned level, unsigned face,
|
||||
const SVGA3dCopyBox *box);
|
||||
|
||||
enum pipe_error
|
||||
SVGA3D_vgpu10_ResolveCopy(struct svga_winsys_context *swc,
|
||||
unsigned dstSubResource,
|
||||
struct svga_winsys_surface *dst,
|
||||
unsigned srcSubResource,
|
||||
struct svga_winsys_surface *src,
|
||||
const SVGA3dSurfaceFormat copyFormat);
|
||||
|
||||
#endif /* __SVGA3D_H__ */
|
||||
|
|
|
|||
|
|
@ -1375,9 +1375,9 @@ SVGA3D_vgpu10_TransferFromBuffer(struct svga_winsys_context *swc,
|
|||
|
||||
enum pipe_error
|
||||
SVGA3D_vgpu10_IntraSurfaceCopy(struct svga_winsys_context *swc,
|
||||
struct svga_winsys_surface *surface,
|
||||
unsigned level, unsigned face,
|
||||
const SVGA3dCopyBox *box)
|
||||
struct svga_winsys_surface *surface,
|
||||
unsigned level, unsigned face,
|
||||
const SVGA3dCopyBox *box)
|
||||
{
|
||||
SVGA3dCmdIntraSurfaceCopy *cmd =
|
||||
SVGA3D_FIFOReserve(swc,
|
||||
|
|
@ -1396,3 +1396,30 @@ SVGA3D_vgpu10_IntraSurfaceCopy(struct svga_winsys_context *swc,
|
|||
|
||||
return PIPE_OK;
|
||||
}
|
||||
|
||||
enum pipe_error
|
||||
SVGA3D_vgpu10_ResolveCopy(struct svga_winsys_context *swc,
|
||||
unsigned dstSubResource,
|
||||
struct svga_winsys_surface *dst,
|
||||
unsigned srcSubResource,
|
||||
struct svga_winsys_surface *src,
|
||||
const SVGA3dSurfaceFormat copyFormat)
|
||||
{
|
||||
SVGA3dCmdDXResolveCopy *cmd =
|
||||
SVGA3D_FIFOReserve(swc,
|
||||
SVGA_3D_CMD_DX_RESOLVE_COPY,
|
||||
sizeof(SVGA3dCmdDXResolveCopy),
|
||||
2); /* two relocations */
|
||||
if (!cmd)
|
||||
return PIPE_ERROR_OUT_OF_MEMORY;
|
||||
|
||||
cmd->dstSubResource = dstSubResource;
|
||||
swc->surface_relocation(swc, &cmd->dstSid, NULL, dst, SVGA_RELOC_WRITE);
|
||||
cmd->srcSubResource = srcSubResource;
|
||||
swc->surface_relocation(swc, &cmd->srcSid, NULL, src, SVGA_RELOC_READ);
|
||||
cmd->copyFormat = copyFormat;
|
||||
|
||||
swc->commit(swc);
|
||||
|
||||
return PIPE_OK;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue