xgl: Add fast clear APIs
authorMark Lobodzinski <mark@lunarg.com>
Wed, 28 Jan 2015 19:29:48 +0000 (13:29 -0600)
committerCourtney Goeltzenleuchter <courtney@LunarG.com>
Thu, 5 Feb 2015 00:58:10 +0000 (17:58 -0700)
Added new APIs for optimized clears of color and depth buffers.
Bug# 13172, due to a bug in rev39, this also accounts for the change
in rev41.

include/xgl.h
include/xglLayer.h
xgl.py

index 95a3fc51d14cd4212bb061c0f574201d9d4bde5b..7975e2c0901b044afeb594820fddd714a59e241f 100644 (file)
@@ -2284,6 +2284,8 @@ typedef XGL_RESULT (XGLAPI *xglGetFormatInfoType)(XGL_DEVICE device, XGL_FORMAT
 typedef XGL_RESULT (XGLAPI *xglCreateBufferType)(XGL_DEVICE device, const XGL_BUFFER_CREATE_INFO* pCreateInfo, XGL_BUFFER* pBuffer);
 typedef XGL_RESULT (XGLAPI *xglCreateBufferViewType)(XGL_DEVICE device, const XGL_BUFFER_VIEW_CREATE_INFO* pCreateInfo, XGL_BUFFER_VIEW* pView);
 typedef XGL_RESULT (XGLAPI *xglCreateImageType)(XGL_DEVICE device, const XGL_IMAGE_CREATE_INFO* pCreateInfo, XGL_IMAGE* pImage);
+typedef XGL_RESULT (XGLAPI *xglSetFastClearColorType)(XGL_IMAGE image, const float color[4]);
+typedef XGL_RESULT (XGLAPI *xglSetFastClearDepthType)(XGL_IMAGE image, float depth);
 typedef XGL_RESULT (XGLAPI *xglGetImageSubresourceInfoType)(XGL_IMAGE image, const XGL_IMAGE_SUBRESOURCE* pSubresource, XGL_SUBRESOURCE_INFO_TYPE infoType, XGL_SIZE* pDataSize, XGL_VOID* pData);
 typedef XGL_RESULT (XGLAPI *xglCreateImageViewType)(XGL_DEVICE device, const XGL_IMAGE_VIEW_CREATE_INFO* pCreateInfo, XGL_IMAGE_VIEW* pView);
 typedef XGL_RESULT (XGLAPI *xglCreateColorAttachmentViewType)(XGL_DEVICE device, const XGL_COLOR_ATTACHMENT_VIEW_CREATE_INFO* pCreateInfo, XGL_COLOR_ATTACHMENT_VIEW* pView);
@@ -2601,6 +2603,14 @@ XGL_RESULT XGLAPI xglCreateImage(
     const XGL_IMAGE_CREATE_INFO*                pCreateInfo,
     XGL_IMAGE*                                  pImage);
 
+XGL_RESULT XGLAPI xglSetFastClearColor(
+    XGL_IMAGE                                   image,
+    const float                                 color[4]);
+
+XGL_RESULT XGLAPI xglSetFastClearDepth(
+    XGL_IMAGE                                   image,
+    float                                       depth);
+
 XGL_RESULT XGLAPI xglGetImageSubresourceInfo(
     XGL_IMAGE                                   image,
     const XGL_IMAGE_SUBRESOURCE*                pSubresource,
index 7148fa4214443c9342524c2d8c3d806e389daa90..195de53ab0f5bf5db8bc67016e3cc95c4984d9e7 100644 (file)
@@ -69,6 +69,8 @@ typedef struct _XGL_LAYER_DISPATCH_TABLE
     xglCreateBufferType CreateBuffer;
     xglCreateBufferViewType CreateBufferView;
     xglCreateImageType CreateImage;
+    xglSetFastClearColorType SetFastClearColor;
+    xglSetFastClearDepthType SetFastClearDepth;
     xglGetImageSubresourceInfoType GetImageSubresourceInfo;
     xglCreateImageViewType CreateImageView;
     xglCreateColorAttachmentViewType CreateColorAttachmentView;
diff --git a/xgl.py b/xgl.py
index 225610b1231c501066d87c2738e400f27beaa4e3..d07287767802898e570ac00dc4937ce2ad335ae0 100644 (file)
--- a/xgl.py
+++ b/xgl.py
@@ -436,6 +436,14 @@ core = Extension(
              Param("const XGL_IMAGE_CREATE_INFO*", "pCreateInfo"),
              Param("XGL_IMAGE*", "pImage")]),
 
+        Proto("XGL_RESULT", "SetFastClearColor",
+            [Param("XGL_IMAGE", "pImage"),
+             Param("const XGL_FLOAT[4]", "color")]),
+
+        Proto("XGL_RESULT", "SetFastClearDepth",
+            [Param("XGL_IMAGE", "pImage"),
+             Param("XGL_FLOAT", "depth")]),
+
         Proto("XGL_RESULT", "GetImageSubresourceInfo",
             [Param("XGL_IMAGE", "image"),
              Param("const XGL_IMAGE_SUBRESOURCE*", "pSubresource"),