intel: Remove scissor enable and scissor count
authorCourtney Goeltzenleuchter <courtney@LunarG.com>
Wed, 11 Feb 2015 21:13:34 +0000 (14:13 -0700)
committerCourtney Goeltzenleuchter <courtney@LunarG.com>
Tue, 17 Feb 2015 17:20:49 +0000 (10:20 -0700)
bug #12925
header version: r29511
Remove separate scissor enable and scissor count. Scissor always
enabled and must always provide scissor rect for every viewport.

demos/cube.c
demos/tri.c
glave-generate.py
include/xgl.h
layers/draw_state.c

index 42a9570..1e961a7 100644 (file)
@@ -1142,7 +1142,6 @@ static void demo_prepare_pipeline(struct demo *demo)
 
     memset(&vp, 0, sizeof(vp));
     vp.sType = XGL_STRUCTURE_TYPE_PIPELINE_VP_STATE_CREATE_INFO;
-    vp.scissorEnable = XGL_FALSE;
 
     memset(&ds, 0, sizeof(ds));
     ds.sType = XGL_STRUCTURE_TYPE_PIPELINE_DS_STATE_CREATE_INFO;
@@ -1201,13 +1200,19 @@ static void demo_prepare_dynamic_states(struct demo *demo)
 
     memset(&viewport_create, 0, sizeof(viewport_create));
     viewport_create.sType = XGL_STRUCTURE_TYPE_DYNAMIC_VP_STATE_CREATE_INFO;
-    viewport_create.viewportCount = 1;
+    viewport_create.viewportAndScissorCount = 1;
     XGL_VIEWPORT viewport;
+    XGL_RECT scissor;
     viewport.height = (float) demo->height;
     viewport.width = (float) demo->width;
     viewport.minDepth = (float) 0.0f;
     viewport.maxDepth = (float) 1.0f;
+    scissor.extent.width = demo->width;
+    scissor.extent.height = demo->height;
+    scissor.offset.x = 0;
+    scissor.offset.y = 0;
     viewport_create.pViewports = &viewport;
+    viewport_create.pScissors = &scissor;
 
     memset(&raster, 0, sizeof(raster));
     raster.sType = XGL_STRUCTURE_TYPE_DYNAMIC_RS_STATE_CREATE_INFO;
index 74ba895..3cfb86d 100644 (file)
@@ -757,7 +757,6 @@ static void demo_prepare_pipeline(struct demo *demo)
 
     memset(&vp, 0, sizeof(vp));
     vp.sType = XGL_STRUCTURE_TYPE_PIPELINE_VP_STATE_CREATE_INFO;
-    vp.scissorEnable = XGL_FALSE;
 
 
     memset(&ds, 0, sizeof(ds));
@@ -817,14 +816,20 @@ static void demo_prepare_dynamic_states(struct demo *demo)
 
     memset(&viewport_create, 0, sizeof(viewport_create));
     viewport_create.sType = XGL_STRUCTURE_TYPE_DYNAMIC_VP_STATE_CREATE_INFO;
-    viewport_create.viewportCount = 1;
+    viewport_create.viewportAndScissorCount = 1;
     XGL_VIEWPORT viewport;
+    XGL_RECT scissor;
     memset(&viewport, 0, sizeof(viewport));
-    viewport.width = (float) demo->width;
     viewport.height = (float) demo->height;
+    viewport.width = (float) demo->width;
     viewport.minDepth = (float) 0.0f;
     viewport.maxDepth = (float) 1.0f;
+    scissor.extent.width = demo->width;
+    scissor.extent.height = demo->height;
+    scissor.offset.x = 0;
+    scissor.offset.y = 0;
     viewport_create.pViewports = &viewport;
+    viewport_create.pScissors = &scissor;
 
     memset(&raster, 0, sizeof(raster));
     raster.sType = XGL_STRUCTURE_TYPE_DYNAMIC_RS_STATE_CREATE_INFO;
index a136cec..a1c7cc1 100755 (executable)
@@ -479,9 +479,8 @@ class Subcommand(object):
                         func_body.append('    customSize = calculate_begin_cmdbuf_size(pBeginInfo->pNext);')
                         func_body.append('    CREATE_TRACE_PACKET(xglBeginCommandBuffer, sizeof(XGL_CMD_BUFFER_BEGIN_INFO) + customSize);')
                     elif 'CreateDynamicViewportState' == proto.name:
-                        func_body.append('    uint32_t vpCount = (pCreateInfo != NULL && pCreateInfo->pViewports != NULL) ? pCreateInfo->viewportCount : 0;')
-                        func_body.append('    uint32_t scCount = (pCreateInfo != NULL && pCreateInfo->pScissors != NULL) ? pCreateInfo->scissorCount : 0;')
-                        func_body.append('    customSize = vpCount * sizeof(XGL_VIEWPORT) + scCount * sizeof(XGL_RECT);')
+                        func_body.append('    uint32_t vpsCount = (pCreateInfo != NULL && pCreateInfo->pViewports != NULL) ? pCreateInfo->viewportAndScissorCount : 0;')
+                        func_body.append('    customSize = vpsCount * sizeof(XGL_VIEWPORT) + vpsCount * sizeof(XGL_RECT);')
                         func_body.append('    CREATE_TRACE_PACKET(xglCreateDynamicViewportState,  sizeof(XGL_DYNAMIC_VP_STATE_CREATE_INFO) + sizeof(XGL_DYNAMIC_VP_STATE_OBJECT) + customSize);')
                     elif 'AllocMemory' == proto.name:
                         func_body.append('    customSize = calculate_alloc_memory_size(pAllocInfo->pNext);')
@@ -585,8 +584,8 @@ class Subcommand(object):
                         elif 'BeginCommandBuffer' == proto.name:
                             func_body.append('    add_begin_cmdbuf_to_trace_packet(pHeader, (void**)&(pPacket->pBeginInfo->pNext), pBeginInfo->pNext);')
                         elif 'CreateDynamicViewportState' == proto.name:
-                            func_body.append('    glv_add_buffer_to_trace_packet(pHeader, (void**)&(pPacket->pCreateInfo->pViewports), vpCount * sizeof(XGL_VIEWPORT), pCreateInfo->pViewports);')
-                            func_body.append('    glv_add_buffer_to_trace_packet(pHeader, (void**)&(pPacket->pCreateInfo->pScissors), scCount * sizeof(XGL_RECT), pCreateInfo->pScissors);')
+                            func_body.append('    glv_add_buffer_to_trace_packet(pHeader, (void**)&(pPacket->pCreateInfo->pViewports), vpsCount * sizeof(XGL_VIEWPORT), pCreateInfo->pViewports);')
+                            func_body.append('    glv_add_buffer_to_trace_packet(pHeader, (void**)&(pPacket->pCreateInfo->pScissors), vpsCount * sizeof(XGL_RECT), pCreateInfo->pScissors);')
                             func_body.append('    glv_finalize_buffer_address(pHeader, (void**)&(pPacket->pCreateInfo->pViewports));')
                             func_body.append('    glv_finalize_buffer_address(pHeader, (void**)&(pPacket->pCreateInfo->pScissors));')
                         elif 'AllocMemory' == proto.name:
index 968ab23..e27b910 100644 (file)
@@ -33,7 +33,7 @@
 #include "xglPlatform.h"
 
 // XGL API version supported by this file
-#define XGL_API_VERSION XGL_MAKE_VERSION(0, 47, 1)
+#define XGL_API_VERSION XGL_MAKE_VERSION(0, 48, 1)
 
 #ifdef __cplusplus
 extern "C"
@@ -1919,7 +1919,6 @@ typedef struct _XGL_PIPELINE_VP_STATE_CREATE_INFO
     XGL_STRUCTURE_TYPE                      sType;      // Must be XGL_STRUCTURE_TYPE_PIPELINE_VP_STATE_CREATE_INFO
     const void*                             pNext;      // Pointer to next structure
     uint32_t                                numViewports;
-    uint32_t                                scissorEnable;
     XGL_COORDINATE_ORIGIN                   clipOrigin;                 // optional (GL45)
     XGL_DEPTH_MODE                          depthMode;                  // optional (GL45)
 } XGL_PIPELINE_VP_STATE_CREATE_INFO;
@@ -2033,9 +2032,8 @@ typedef struct _XGL_DYNAMIC_VP_STATE_CREATE_INFO
 {
     XGL_STRUCTURE_TYPE                      sType;      // Must be XGL_STRUCTURE_TYPE_DYNAMIC_VP_STATE_CREATE_INFO
     const void*                             pNext;      // Pointer to next structure
-    uint32_t                                viewportCount;  // number of entries in pViewports
+    uint32_t                                viewportAndScissorCount;  // number of entries in pViewports and pScissors
     const XGL_VIEWPORT*                     pViewports;
-    uint32_t                                scissorCount;   // number of entries in pScissors
     const XGL_RECT*                         pScissors;
 } XGL_DYNAMIC_VP_STATE_CREATE_INFO;
 
index c07367f..0fa5b7c 100644 (file)
@@ -293,13 +293,13 @@ static void insertDynamicState(const XGL_DYNAMIC_STATE_OBJECT state, const GENER
     if (XGL_STRUCTURE_TYPE_DYNAMIC_VP_STATE_CREATE_INFO == pCreateInfo->sType) {
         XGL_DYNAMIC_VP_STATE_CREATE_INFO* pVPCI = (XGL_DYNAMIC_VP_STATE_CREATE_INFO*)pStateNode->pCreateInfo;
         XGL_VIEWPORT** ppViewports = (XGL_VIEWPORT**)&pVPCI->pViewports;
-        size_t vpSize = sizeof(XGL_VIEWPORT) * pVPCI->viewportCount;
+        size_t vpSize = sizeof(XGL_VIEWPORT) * pVPCI->viewportAndScissorCount;
         if (vpSize) {
             *ppViewports = (XGL_VIEWPORT*)malloc(vpSize);
             memcpy(*ppViewports, ((XGL_DYNAMIC_VP_STATE_CREATE_INFO*)pCreateInfo)->pViewports, vpSize);
         }
         XGL_RECT** ppScissors = (XGL_RECT**)&pVPCI->pScissors;
-        size_t scSize = sizeof(XGL_RECT) * pVPCI->scissorCount;
+        size_t scSize = sizeof(XGL_RECT) * pVPCI->viewportAndScissorCount;
         if (scSize) {
             *ppScissors = (XGL_RECT*)malloc(scSize);
             memcpy(*ppScissors, ((XGL_DYNAMIC_VP_STATE_CREATE_INFO*)pCreateInfo)->pScissors, scSize);