gallium: add PIPE_CAP_TGSI_PACK_HALF_FLOAT to indicate UP2H/PK2H support
authorIlia Mirkin <imirkin@alum.mit.edu>
Sat, 2 Jan 2016 23:55:48 +0000 (18:55 -0500)
committerIlia Mirkin <imirkin@alum.mit.edu>
Sun, 3 Jan 2016 21:20:41 +0000 (16:20 -0500)
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
16 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/drivers/virgl/virgl_screen.c
src/gallium/include/pipe/p_defines.h

index 41bd0f81e0efc272e92ba15a5b784e405892a581..30d497f59e3fb79fd8526c9a0dc25e5645600533 100644 (file)
@@ -285,6 +285,8 @@ The integer capabilities:
 * ``PIPE_CAP_DRAW_PARAMETERS``: Whether ``TGSI_SEMANTIC_BASEVERTEX``,
   ``TGSI_SEMANTIC_BASEINSTANCE``, and ``TGSI_SEMANTIC_DRAWID`` are
   supported in vertex shaders.
+* ``PIPE_CAP_TGSI_PACK_HALF_FLOAT``: Whether the ``UP2H`` and ``PK2H``
+  TGSI opcodes are supported.
 
 
 .. _pipe_capf:
index 4b6d6af0837387f2a8df5f2501067b4e6704afa6..4b377b4b087c7f2b192551f5485e846351abb641 100644 (file)
@@ -239,6 +239,7 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
        case PIPE_CAP_COPY_BETWEEN_COMPRESSED_AND_PLAIN_FORMATS:
        case PIPE_CAP_CLEAR_TEXTURE:
        case PIPE_CAP_DRAW_PARAMETERS:
+       case PIPE_CAP_TGSI_PACK_HALF_FLOAT:
                return 0;
 
        case PIPE_CAP_MAX_VIEWPORTS:
index 14bd8d797d23541db40d74ea6ba8b8bccb7a040e..7eab1755c5a013720d6be488a9fbf05664ba9ea1 100644 (file)
@@ -255,6 +255,7 @@ i915_get_param(struct pipe_screen *screen, enum pipe_cap cap)
    case PIPE_CAP_COPY_BETWEEN_COMPRESSED_AND_PLAIN_FORMATS:
    case PIPE_CAP_CLEAR_TEXTURE:
    case PIPE_CAP_DRAW_PARAMETERS:
+   case PIPE_CAP_TGSI_PACK_HALF_FLOAT:
       return 0;
 
    case PIPE_CAP_MAX_DUAL_SOURCE_RENDER_TARGETS:
index ac29b5605bd3466da2ee2946cf93ec28cbf53a4f..6b8e619d32a213bae1f648ae09b0a48ee9951d88 100644 (file)
@@ -477,6 +477,7 @@ ilo_get_param(struct pipe_screen *screen, enum pipe_cap param)
    case PIPE_CAP_COPY_BETWEEN_COMPRESSED_AND_PLAIN_FORMATS:
    case PIPE_CAP_CLEAR_TEXTURE:
    case PIPE_CAP_DRAW_PARAMETERS:
+   case PIPE_CAP_TGSI_PACK_HALF_FLOAT:
       return 0;
 
    case PIPE_CAP_VENDOR_ID:
index 535296317abc1a314febc4672bb98f3742cd2276..f4a51ce0a494fc7475e15f91f94bb1f046253b4d 100644 (file)
@@ -302,6 +302,7 @@ llvmpipe_get_param(struct pipe_screen *screen, enum pipe_cap param)
    case PIPE_CAP_COPY_BETWEEN_COMPRESSED_AND_PLAIN_FORMATS:
    case PIPE_CAP_CLEAR_TEXTURE:
    case PIPE_CAP_DRAW_PARAMETERS:
+   case PIPE_CAP_TGSI_PACK_HALF_FLOAT:
       return 0;
    }
    /* should only get here on unhandled cases */
index 02303bb79f247be9855d1aada5d39d4986b08b82..6ef949de80928a7fd8ffe5d2b9fdbb94ee273dc7 100644 (file)
@@ -175,6 +175,7 @@ nv30_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
    case PIPE_CAP_COPY_BETWEEN_COMPRESSED_AND_PLAIN_FORMATS:
    case PIPE_CAP_CLEAR_TEXTURE:
    case PIPE_CAP_DRAW_PARAMETERS:
+   case PIPE_CAP_TGSI_PACK_HALF_FLOAT:
       return 0;
 
    case PIPE_CAP_VENDOR_ID:
index b3f2492fe64f0677fbb7b246e5fc043ee5e5d1a2..5cc000a5d6899a968386d3fae8435ff4883b9362 100644 (file)
@@ -218,6 +218,7 @@ nv50_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
    case PIPE_CAP_DEVICE_RESET_STATUS_QUERY:
    case PIPE_CAP_MAX_SHADER_PATCH_VARYINGS:
    case PIPE_CAP_DRAW_PARAMETERS:
+   case PIPE_CAP_TGSI_PACK_HALF_FLOAT:
       return 0;
 
    case PIPE_CAP_VENDOR_ID:
index f029d1644368bf9a1783ba4b68878f82dcb7d6ab..57ef75db98848bc1b217063a7cbba38fbc6de15e 100644 (file)
@@ -207,6 +207,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_TGSI_PACK_HALF_FLOAT:
       return 0;
 
    case PIPE_CAP_VENDOR_ID:
index e3f2505e13923dc23e7a6dc7783c54c1e1f04e92..c605ce5a7b8574df2161545da3bb22c3bd83f5d0 100644 (file)
@@ -201,6 +201,7 @@ static int r300_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
         case PIPE_CAP_COPY_BETWEEN_COMPRESSED_AND_PLAIN_FORMATS:
         case PIPE_CAP_CLEAR_TEXTURE:
         case PIPE_CAP_DRAW_PARAMETERS:
+        case PIPE_CAP_TGSI_PACK_HALF_FLOAT:
             return 0;
 
         /* SWTCL-only features. */
index 8208686dcb0b73ce44407dc7a165bdbd1ae4fbfe..d71082fddfd1c2f231db92f6df68b36e014d15e9 100644 (file)
@@ -349,6 +349,7 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
        case PIPE_CAP_SHAREABLE_SHADERS:
        case PIPE_CAP_CLEAR_TEXTURE:
        case PIPE_CAP_DRAW_PARAMETERS:
+       case PIPE_CAP_TGSI_PACK_HALF_FLOAT:
                return 0;
 
        case PIPE_CAP_MAX_SHADER_PATCH_VARYINGS:
index fda5a1eed0b15207753ce1fcafffeb503870998f..79bbc48d1f4c003a4b468047dad404d9e22211af 100644 (file)
@@ -341,6 +341,7 @@ static int si_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
        case PIPE_CAP_VERTEXID_NOBASE:
        case PIPE_CAP_CLEAR_TEXTURE:
        case PIPE_CAP_DRAW_PARAMETERS:
+       case PIPE_CAP_TGSI_PACK_HALF_FLOAT:
                return 0;
 
        case PIPE_CAP_MAX_SHADER_PATCH_VARYINGS:
index 7a35a2a81fbe81fa9dcaed24f686bfd7a89be0aa..6af96d9edaa6ac07ddb378c65b7e95181ab20a79 100644 (file)
@@ -252,6 +252,7 @@ softpipe_get_param(struct pipe_screen *screen, enum pipe_cap param)
    case PIPE_CAP_COPY_BETWEEN_COMPRESSED_AND_PLAIN_FORMATS:
    case PIPE_CAP_CLEAR_TEXTURE:
    case PIPE_CAP_DRAW_PARAMETERS:
+   case PIPE_CAP_TGSI_PACK_HALF_FLOAT:
       return 0;
    }
    /* should only get here on unhandled cases */
index fe8e75e1f661f1471e2b850db2e474322699b8bd..8ad3c87b66fc742ef0b9595d1c313ba6c3470e3a 100644 (file)
@@ -349,6 +349,7 @@ svga_get_param(struct pipe_screen *screen, enum pipe_cap param)
    case PIPE_CAP_VERTEXID_NOBASE:
    case PIPE_CAP_POLYGON_OFFSET_CLAMP:
    case PIPE_CAP_MULTISAMPLE_Z_RESOLVE:
+   case PIPE_CAP_TGSI_PACK_HALF_FLOAT:
       return 0;
    case PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT:
       return 64;
index e845dfdedfeb1774db4f39882263becc5fd00304..a4acf2cdb0ff0ee9eab32d938dc9de5ece29a093 100644 (file)
@@ -190,6 +190,7 @@ vc4_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
        case PIPE_CAP_COPY_BETWEEN_COMPRESSED_AND_PLAIN_FORMATS:
        case PIPE_CAP_CLEAR_TEXTURE:
        case PIPE_CAP_DRAW_PARAMETERS:
+       case PIPE_CAP_TGSI_PACK_HALF_FLOAT:
                 return 0;
 
                 /* Stream output. */
index 668f2e01cdd178240c558ef388027db9258ac5c3..0418cbb79645d6df1ae0d932e3b7f0c19cb54fb9 100644 (file)
@@ -220,6 +220,7 @@ virgl_get_param(struct pipe_screen *screen, enum pipe_cap param)
    case PIPE_CAP_SHAREABLE_SHADERS:
    case PIPE_CAP_CLEAR_TEXTURE:
    case PIPE_CAP_DRAW_PARAMETERS:
+   case PIPE_CAP_TGSI_PACK_HALF_FLOAT:
       return 0;
    case PIPE_CAP_VENDOR_ID:
       return 0x1af4;
index d4933e74884bd3e92d55e5e1ee1c01efedf88a71..d6881f9027496bc44122369c25b5fe344f549079 100644 (file)
@@ -636,6 +636,7 @@ enum pipe_cap
    PIPE_CAP_COPY_BETWEEN_COMPRESSED_AND_PLAIN_FORMATS,
    PIPE_CAP_CLEAR_TEXTURE,
    PIPE_CAP_DRAW_PARAMETERS,
+   PIPE_CAP_TGSI_PACK_HALF_FLOAT,
 };
 
 #define PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_NV50 (1 << 0)