gallium: add PIPE_CAP_MAX_SHADER_PATCH_VARYINGS
authorMarek Olšák <marek.olsak@amd.com>
Fri, 12 Jun 2015 12:24:17 +0000 (14:24 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Thu, 16 Jul 2015 14:09:20 +0000 (16:09 +0200)
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
15 files changed:
src/gallium/docs/source/screen.rst
src/gallium/drivers/freedreno/freedreno_screen.c
src/gallium/drivers/i915/i915_screen.c
src/gallium/drivers/ilo/ilo_screen.c
src/gallium/drivers/llvmpipe/lp_screen.c
src/gallium/drivers/nouveau/nv30/nv30_screen.c
src/gallium/drivers/nouveau/nv50/nv50_screen.c
src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
src/gallium/drivers/r300/r300_screen.c
src/gallium/drivers/r600/r600_pipe.c
src/gallium/drivers/radeonsi/si_pipe.c
src/gallium/drivers/softpipe/sp_screen.c
src/gallium/drivers/svga/svga_screen.c
src/gallium/drivers/vc4/vc4_screen.c
src/gallium/include/pipe/p_defines.h

index 74636207d06fdb4fe7871893109908b038ee8d6a..246428deb87e824ba14deeda978573392be5be40 100644 (file)
@@ -254,6 +254,10 @@ The integer capabilities:
   and size must be page-aligned.
 * ``PIPE_CAP_DEVICE_RESET_STATUS_QUERY``:
   Whether pipe_context::get_device_reset_status is implemented.
+* ``PIPE_CAP_MAX_SHADER_PATCH_VARYINGS``:
+  How many per-patch outputs and inputs are supported between tessellation
+  control and tessellation evaluation shaders, not counting in TESSINNER and
+  TESSOUTER. The minimum allowed value for OpenGL is 30.
 
 
 .. _pipe_capf:
index 7b1b4e357c4fb1c16f09b21f5258a3f2d1d90ac4..b28d315cc1272e2b5c65b449809becec232e56c6 100644 (file)
@@ -219,6 +219,7 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
        case PIPE_CAP_MULTISAMPLE_Z_RESOLVE:
        case PIPE_CAP_RESOURCE_FROM_USER_MEMORY:
        case PIPE_CAP_DEVICE_RESET_STATUS_QUERY:
+       case PIPE_CAP_MAX_SHADER_PATCH_VARYINGS:
                return 0;
 
        case PIPE_CAP_MAX_VIEWPORTS:
index dc0004366b164927131f43512bad15358cedf423..6083687962fdc5bb6778caccfd1f7aac5f083adb 100644 (file)
@@ -243,6 +243,7 @@ i915_get_param(struct pipe_screen *screen, enum pipe_cap cap)
    case PIPE_CAP_MULTISAMPLE_Z_RESOLVE:
    case PIPE_CAP_RESOURCE_FROM_USER_MEMORY:
    case PIPE_CAP_DEVICE_RESET_STATUS_QUERY:
+   case PIPE_CAP_MAX_SHADER_PATCH_VARYINGS:
       return 0;
 
    case PIPE_CAP_MAX_DUAL_SOURCE_RENDER_TARGETS:
index eb6c0466eb93241d35ce94072a9f837544b4f940..338643e65bba41d95e9b4b241f36585065130e9f 100644 (file)
@@ -465,6 +465,7 @@ ilo_get_param(struct pipe_screen *screen, enum pipe_cap param)
    case PIPE_CAP_MULTISAMPLE_Z_RESOLVE:
    case PIPE_CAP_RESOURCE_FROM_USER_MEMORY:
    case PIPE_CAP_DEVICE_RESET_STATUS_QUERY:
+   case PIPE_CAP_MAX_SHADER_PATCH_VARYINGS:
       return 0;
 
    case PIPE_CAP_VENDOR_ID:
index 466c5d0cef8d6d0747e209e380f220924f7e5297..1c6c82ea1159d7ed30b5ec45af87b18476fe32ef 100644 (file)
@@ -292,6 +292,7 @@ llvmpipe_get_param(struct pipe_screen *screen, enum pipe_cap param)
    case PIPE_CAP_MULTISAMPLE_Z_RESOLVE:
    case PIPE_CAP_RESOURCE_FROM_USER_MEMORY:
    case PIPE_CAP_DEVICE_RESET_STATUS_QUERY:
+   case PIPE_CAP_MAX_SHADER_PATCH_VARYINGS:
       return 0;
    }
    /* should only get here on unhandled cases */
index 4b3ed7dc157bf251ca05afa91b59df0504671583..b63de694fa75ef3266c820b4232122b12cdd5383 100644 (file)
@@ -163,6 +163,7 @@ nv30_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
    case PIPE_CAP_MULTISAMPLE_Z_RESOLVE:
    case PIPE_CAP_RESOURCE_FROM_USER_MEMORY:
    case PIPE_CAP_DEVICE_RESET_STATUS_QUERY:
+   case PIPE_CAP_MAX_SHADER_PATCH_VARYINGS:
       return 0;
 
    case PIPE_CAP_VENDOR_ID:
index 6583a35357833e36e66863c0aa84eb07bc0e2808..c32ad01eec350b3e215038215b19ad0c9eb25a17 100644 (file)
@@ -210,6 +210,7 @@ nv50_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
    case PIPE_CAP_MULTISAMPLE_Z_RESOLVE: /* potentially supported on some hw */
    case PIPE_CAP_RESOURCE_FROM_USER_MEMORY:
    case PIPE_CAP_DEVICE_RESET_STATUS_QUERY:
+   case PIPE_CAP_MAX_SHADER_PATCH_VARYINGS:
       return 0;
 
    case PIPE_CAP_VENDOR_ID:
index 3f52c85bc74f888a76d1089fe8b680d3aa820cf8..518968a75f92f0dcde334305be574b8cf4e20d59 100644 (file)
@@ -195,6 +195,7 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
    case PIPE_CAP_VERTEXID_NOBASE:
    case PIPE_CAP_RESOURCE_FROM_USER_MEMORY:
    case PIPE_CAP_DEVICE_RESET_STATUS_QUERY:
+   case PIPE_CAP_MAX_SHADER_PATCH_VARYINGS:
       return 0;
 
    case PIPE_CAP_VENDOR_ID:
index e8accefe1a825f04bcc284f23750e4da441d544a..6292c2c4a03ab0fbc40f475266bdce0bfb132bc7 100644 (file)
@@ -191,6 +191,7 @@ static int r300_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
         case PIPE_CAP_MULTISAMPLE_Z_RESOLVE:
         case PIPE_CAP_RESOURCE_FROM_USER_MEMORY:
         case PIPE_CAP_DEVICE_RESET_STATUS_QUERY:
+        case PIPE_CAP_MAX_SHADER_PATCH_VARYINGS:
             return 0;
 
         /* SWTCL-only features. */
index 143e98ea0af3899c37d8a70d4ea5538751277b5f..e8459288106c34145af1604ea8e663f4d61058df 100644 (file)
@@ -335,6 +335,7 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
        case PIPE_CAP_CONDITIONAL_RENDER_INVERTED:
        case PIPE_CAP_SAMPLER_VIEW_TARGET:
        case PIPE_CAP_VERTEXID_NOBASE:
+       case PIPE_CAP_MAX_SHADER_PATCH_VARYINGS:
                return 0;
 
        /* Stream output. */
index a9dce2cdd32573545ec6b7ac4e2af8556f34f3be..2b6a6ff55225ef3f296b059c4d4c0d2d9fb667bb 100644 (file)
@@ -297,6 +297,7 @@ static int si_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
        case PIPE_CAP_CONDITIONAL_RENDER_INVERTED:
        case PIPE_CAP_SAMPLER_VIEW_TARGET:
        case PIPE_CAP_VERTEXID_NOBASE:
+       case PIPE_CAP_MAX_SHADER_PATCH_VARYINGS:
                return 0;
 
        case PIPE_CAP_TEXTURE_BORDER_COLOR_QUIRK:
index a688d319bb8bed0c9213a2b2c042860a62d3cf02..ed8e5457f27ee5dfb76d5e57fc83670d824ed0f5 100644 (file)
@@ -242,6 +242,7 @@ softpipe_get_param(struct pipe_screen *screen, enum pipe_cap param)
    case PIPE_CAP_MULTISAMPLE_Z_RESOLVE:
    case PIPE_CAP_RESOURCE_FROM_USER_MEMORY:
    case PIPE_CAP_DEVICE_RESET_STATUS_QUERY:
+   case PIPE_CAP_MAX_SHADER_PATCH_VARYINGS:
       return 0;
    }
    /* should only get here on unhandled cases */
index e2305bec3594055dcc76390128978c137c36c6a4..ac5abe8f89d34899ccc07210b73c3d237ddfed5d 100644 (file)
@@ -309,6 +309,7 @@ svga_get_param(struct pipe_screen *screen, enum pipe_cap param)
    case PIPE_CAP_UMA:
    case PIPE_CAP_RESOURCE_FROM_USER_MEMORY:
    case PIPE_CAP_DEVICE_RESET_STATUS_QUERY:
+   case PIPE_CAP_MAX_SHADER_PATCH_VARYINGS:
       return 0;
    }
 
index f63bead0fbb93c474270e3b78e4fe60137f291db..c069454c2d172fbfcd99d247eecef1d8bd1f3e6e 100644 (file)
@@ -176,6 +176,7 @@ vc4_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
         case PIPE_CAP_MULTISAMPLE_Z_RESOLVE:
         case PIPE_CAP_RESOURCE_FROM_USER_MEMORY:
         case PIPE_CAP_DEVICE_RESET_STATUS_QUERY:
+       case PIPE_CAP_MAX_SHADER_PATCH_VARYINGS:
                 return 0;
 
                 /* Stream output. */
index b0cd23dbeffd03413172ab9c1aa902d5e16492c1..2dc8798f3c71ed05dd9de81675fe711e1695632a 100644 (file)
@@ -605,6 +605,7 @@ enum pipe_cap
    PIPE_CAP_MULTISAMPLE_Z_RESOLVE,
    PIPE_CAP_RESOURCE_FROM_USER_MEMORY,
    PIPE_CAP_DEVICE_RESET_STATUS_QUERY,
+   PIPE_CAP_MAX_SHADER_PATCH_VARYINGS,
 };
 
 #define PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_NV50 (1 << 0)