diff options
| author | Courtney Goeltzenleuchter <courtney@LunarG.com> | 2015-03-08 17:02:18 -0600 |
|---|---|---|
| committer | Chia-I Wu <olv@lunarg.com> | 2015-04-16 17:33:25 +0800 |
| commit | 14b62e46835fdbb044796db3d22892c2cd1bfebe (patch) | |
| tree | 302c8c952208fed8b46846c0219d295e97564909 /include | |
| parent | 53968d8ee5baaf90d2e8922c452f663c3df0c363 (diff) | |
| download | usermoji-14b62e46835fdbb044796db3d22892c2cd1bfebe.tar.xz | |
xgl: Add xglCmdBlitImage entry point
Part one of adding support for abitrary scaled blits and format conversions.
Just interface here. Functionality to follow.
bug #13071
alpha rev: r29665
Diffstat (limited to 'include')
| -rw-r--r-- | include/xgl.h | 36 | ||||
| -rw-r--r-- | include/xglLayer.h | 1 |
2 files changed, 27 insertions, 10 deletions
diff --git a/include/xgl.h b/include/xgl.h index 1955f8ae..8c2cacc2 100644 --- a/include/xgl.h +++ b/include/xgl.h @@ -33,7 +33,7 @@ #include "xglPlatform.h" // XGL API version supported by this file -#define XGL_API_VERSION XGL_MAKE_VERSION(0, 57, 1) +#define XGL_API_VERSION XGL_MAKE_VERSION(0, 57, 2) #ifdef __cplusplus extern "C" @@ -196,7 +196,7 @@ typedef enum _XGL_ATTACHMENT_LOAD_OP XGL_ATTACHMENT_LOAD_OP_LOAD = 0x00000000, XGL_ATTACHMENT_LOAD_OP_CLEAR = 0x00000001, XGL_ATTACHMENT_LOAD_OP_DONT_CARE = 0x00000002, - + XGL_ATTACHMENT_LOAD_OP_BEGIN_RANGE = XGL_ATTACHMENT_LOAD_OP_LOAD, XGL_ATTACHMENT_LOAD_OP_END_RANGE = XGL_ATTACHMENT_LOAD_OP_DONT_CARE, XGL_NUM_ATTACHMENT_LOAD_OP = (XGL_ATTACHMENT_LOAD_OP_END_RANGE - XGL_ATTACHMENT_LOAD_OP_BEGIN_RANGE + 1), @@ -208,7 +208,7 @@ typedef enum _XGL_ATTACHMENT_STORE_OP XGL_ATTACHMENT_STORE_OP_STORE = 0x00000000, XGL_ATTACHMENT_STORE_OP_RESOLVE_MSAA = 0x00000001, XGL_ATTACHMENT_STORE_OP_DONT_CARE = 0x00000002, - + XGL_ATTACHMENT_STORE_OP_BEGIN_RANGE = XGL_ATTACHMENT_STORE_OP_STORE, XGL_ATTACHMENT_STORE_OP_END_RANGE = XGL_ATTACHMENT_STORE_OP_DONT_CARE, XGL_NUM_ATTACHMENT_STORE_OP = (XGL_ATTACHMENT_STORE_OP_END_RANGE - XGL_ATTACHMENT_STORE_OP_BEGIN_RANGE + 1), @@ -1186,12 +1186,12 @@ typedef enum _XGL_IMAGE_USAGE_FLAGS XGL_IMAGE_USAGE_SHADER_ACCESS_READ_BIT = 0x00000001, // shader read (e.g. texture, image) XGL_IMAGE_USAGE_SHADER_ACCESS_WRITE_BIT = 0x00000002, // shader write (e.g. image) XGL_IMAGE_USAGE_SHADER_ACCESS_ATOMIC_BIT = 0x00000004, // shader atomic operations (e.g. image) - XGL_IMAGE_USAGE_TRANSFER_SOURCE_BIT = 0x00000008, // used as a source for copies + XGL_IMAGE_USAGE_TRANSFER_SOURCE_BIT = 0x00000008, // used as a source for copies XGL_IMAGE_USAGE_TRANSFER_DESTINATION_BIT = 0x00000010, // used as a destination for copies XGL_IMAGE_USAGE_TEXTURE_BIT = 0x00000020, // opaque texture (2d, 3d, etc.) XGL_IMAGE_USAGE_IMAGE_BIT = 0x00000040, // opaque image (2d, 3d, etc.) XGL_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000080, // framebuffer color attachment - XGL_IMAGE_USAGE_DEPTH_STENCIL_BIT = 0x00000100, // framebuffer depth/stencil + XGL_IMAGE_USAGE_DEPTH_STENCIL_BIT = 0x00000100, // framebuffer depth/stencil XGL_MAX_ENUM(_XGL_IMAGE_USAGE_FLAGS) } XGL_IMAGE_USAGE_FLAGS; @@ -1698,6 +1698,7 @@ typedef struct _XGL_PEER_IMAGE_OPEN_INFO { XGL_IMAGE originalImage; } XGL_PEER_IMAGE_OPEN_INFO; + typedef struct _XGL_SUBRESOURCE_LAYOUT { XGL_GPU_SIZE offset; // Specified in bytes @@ -1779,6 +1780,16 @@ typedef struct _XGL_IMAGE_COPY XGL_EXTENT3D extent; } XGL_IMAGE_COPY; +typedef struct _XGL_IMAGE_BLIT +{ + XGL_IMAGE_SUBRESOURCE srcSubresource; + XGL_OFFSET3D srcOffset; + XGL_EXTENT3D srcExtent; + XGL_IMAGE_SUBRESOURCE destSubresource; + XGL_OFFSET3D destOffset; + XGL_EXTENT3D destExtent; +} XGL_IMAGE_BLIT; + typedef struct _XGL_BUFFER_IMAGE_COPY { XGL_GPU_SIZE bufferOffset; // Specified in bytes @@ -1865,11 +1876,6 @@ typedef struct _XGL_COMPUTE_PIPELINE_CREATE_INFO XGL_PIPELINE_SHADER cs; XGL_FLAGS flags; // XGL_PIPELINE_CREATE_FLAGS XGL_DESCRIPTOR_SET_LAYOUT lastSetLayout; - // For local size fields zero is treated an invalid value - uint32_t localSizeX; - uint32_t localSizeY; - uint32_t localSizeZ; - } XGL_COMPUTE_PIPELINE_CREATE_INFO; typedef struct _XGL_VERTEX_INPUT_BINDING_DESCRIPTION @@ -2326,6 +2332,7 @@ typedef void (XGLAPI *xglCmdDispatchType)(XGL_CMD_BUFFER cmdBuffer, uint32 typedef void (XGLAPI *xglCmdDispatchIndirectType)(XGL_CMD_BUFFER cmdBuffer, XGL_BUFFER buffer, XGL_GPU_SIZE offset); typedef void (XGLAPI *xglCmdCopyBufferType)(XGL_CMD_BUFFER cmdBuffer, XGL_BUFFER srcBuffer, XGL_BUFFER destBuffer, uint32_t regionCount, const XGL_BUFFER_COPY* pRegions); typedef void (XGLAPI *xglCmdCopyImageType)(XGL_CMD_BUFFER cmdBuffer, XGL_IMAGE srcImage, XGL_IMAGE destImage, uint32_t regionCount, const XGL_IMAGE_COPY* pRegions); +typedef void (XGLAPI *xglCmdBlitImageType)(XGL_CMD_BUFFER cmdBuffer, XGL_IMAGE srcImage, XGL_IMAGE_LAYOUT srcLayout, XGL_IMAGE destImage, XGL_IMAGE_LAYOUT destLayout, uint32_t regionCount, const XGL_IMAGE_BLIT* pRegions); typedef void (XGLAPI *xglCmdCopyBufferToImageType)(XGL_CMD_BUFFER cmdBuffer, XGL_BUFFER srcBuffer, XGL_IMAGE destImage, uint32_t regionCount, const XGL_BUFFER_IMAGE_COPY* pRegions); typedef void (XGLAPI *xglCmdCopyImageToBufferType)(XGL_CMD_BUFFER cmdBuffer, XGL_IMAGE srcImage, XGL_BUFFER destBuffer, uint32_t regionCount, const XGL_BUFFER_IMAGE_COPY* pRegions); typedef void (XGLAPI *xglCmdCloneImageDataType)(XGL_CMD_BUFFER cmdBuffer, XGL_IMAGE srcImage, XGL_IMAGE_LAYOUT srcImageLayout, XGL_IMAGE destImage, XGL_IMAGE_LAYOUT destImageLayout); @@ -2859,6 +2866,15 @@ void XGLAPI xglCmdCopyImage( uint32_t regionCount, const XGL_IMAGE_COPY* pRegions); +void XGLAPI xglCmdBlitImage( + XGL_CMD_BUFFER cmdBuffer, + XGL_IMAGE srcImage, + XGL_IMAGE_LAYOUT srcLayout, + XGL_IMAGE destImage, + XGL_IMAGE_LAYOUT destLayout, + uint32_t regionCount, + const XGL_IMAGE_BLIT* pRegions); + void XGLAPI xglCmdCopyBufferToImage( XGL_CMD_BUFFER cmdBuffer, XGL_BUFFER srcBuffer, diff --git a/include/xglLayer.h b/include/xglLayer.h index 05fa5ec0..81da19ec 100644 --- a/include/xglLayer.h +++ b/include/xglLayer.h @@ -116,6 +116,7 @@ typedef struct _XGL_LAYER_DISPATCH_TABLE xglCmdDispatchIndirectType CmdDispatchIndirect; xglCmdCopyBufferType CmdCopyBuffer; xglCmdCopyImageType CmdCopyImage; + xglCmdBlitImageType CmdBlitImage; xglCmdCopyBufferToImageType CmdCopyBufferToImage; xglCmdCopyImageToBufferType CmdCopyImageToBuffer; xglCmdCloneImageDataType CmdCloneImageData; |
