gallium: add PIPE_CAP_MAX_WINDOW_RECTANGLES to all drivers
authorIlia Mirkin <imirkin@alum.mit.edu>
Sat, 11 Jun 2016 19:26:45 +0000 (15:26 -0400)
committerIlia Mirkin <imirkin@alum.mit.edu>
Sat, 18 Jun 2016 17:38:29 +0000 (13:38 -0400)
This says how many window rectangles are supported by the
implementation, although it may not exceed PIPE_MAX_WINDOW_RECTANGLES.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Brian Paul <brianp@vmware.com>
17 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/swr/swr_screen.cpp
src/gallium/drivers/vc4/vc4_screen.c
src/gallium/drivers/virgl/virgl_screen.c
src/gallium/include/pipe/p_defines.h

index 979b6c1d6ab3050c05a44fd4dd378364f14fab69..a20b372b1a94df45dd151e33a7205366b1997407 100644 (file)
@@ -341,6 +341,8 @@ The integer capabilities:
 * ``PIPE_CAP_PRIMITIVE_RESTART_FOR_PATCHES``: Whether primitive restart is
   supported for patch primitives.
 * ``PIPE_CAP_TGSI_VOTE``: Whether the ``VOTE_*`` ops can be used in shaders.
+* ``PIPE_CAP_MAX_WINDOW_RECTANGLES``: The maxium number of window rectangles
+  supported in ``set_window_rectangles``.
 
 
 .. _pipe_capf:
index c2580740b8878f0e43284ca7d80ab7866f53ab99..91380241f3caec6c75153812b984fde171b5e203 100644 (file)
@@ -263,6 +263,7 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
        case PIPE_CAP_CULL_DISTANCE:
        case PIPE_CAP_PRIMITIVE_RESTART_FOR_PATCHES:
        case PIPE_CAP_TGSI_VOTE:
+       case PIPE_CAP_MAX_WINDOW_RECTANGLES:
                return 0;
 
        case PIPE_CAP_MAX_VIEWPORTS:
index a7ee3813bd8d008c3e6917b8999df86ddef13bb2..e898f7ee20ad0d7bb8c3a49bd31134833a4043c0 100644 (file)
@@ -274,6 +274,7 @@ i915_get_param(struct pipe_screen *screen, enum pipe_cap cap)
    case PIPE_CAP_CULL_DISTANCE:
    case PIPE_CAP_PRIMITIVE_RESTART_FOR_PATCHES:
    case PIPE_CAP_TGSI_VOTE:
+   case PIPE_CAP_MAX_WINDOW_RECTANGLES:
       return 0;
 
    case PIPE_CAP_MAX_DUAL_SOURCE_RENDER_TARGETS:
index 1ae0327bdae989e52587a5a6d2a36e9eea9d5c75..a775aa60dc2839f734ef67e8d944efc82ed3b2ae 100644 (file)
@@ -503,6 +503,7 @@ ilo_get_param(struct pipe_screen *screen, enum pipe_cap param)
    case PIPE_CAP_CULL_DISTANCE:
    case PIPE_CAP_PRIMITIVE_RESTART_FOR_PATCHES:
    case PIPE_CAP_TGSI_VOTE:
+   case PIPE_CAP_MAX_WINDOW_RECTANGLES:
       return 0;
 
    case PIPE_CAP_VENDOR_ID:
index 7e05cf4d3ba4390049e06ce8e588d2894c978990..7d01e6458f7b48aa22a42615381472750b5bb257 100644 (file)
@@ -326,6 +326,7 @@ llvmpipe_get_param(struct pipe_screen *screen, enum pipe_cap param)
    case PIPE_CAP_ROBUST_BUFFER_ACCESS_BEHAVIOR:
    case PIPE_CAP_PRIMITIVE_RESTART_FOR_PATCHES:
    case PIPE_CAP_TGSI_VOTE:
+   case PIPE_CAP_MAX_WINDOW_RECTANGLES:
       return 0;
    }
    /* should only get here on unhandled cases */
index de798cf38fb5d32bdd11913d66b51b9f2e81756e..0a3d8b2faba5e3161c0f366cc724dc94076c3dba 100644 (file)
@@ -197,6 +197,7 @@ nv30_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
    case PIPE_CAP_CULL_DISTANCE:
    case PIPE_CAP_PRIMITIVE_RESTART_FOR_PATCHES:
    case PIPE_CAP_TGSI_VOTE:
+   case PIPE_CAP_MAX_WINDOW_RECTANGLES:
       return 0;
 
    case PIPE_CAP_VENDOR_ID:
index 03f4591ac707d7ea98fd1262a5bbfe8fe222f2e1..d1719d307207ad14218e0a1b2e375cd2ed20bdc9 100644 (file)
@@ -250,6 +250,7 @@ nv50_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
    case PIPE_CAP_ROBUST_BUFFER_ACCESS_BEHAVIOR:
    case PIPE_CAP_PRIMITIVE_RESTART_FOR_PATCHES:
    case PIPE_CAP_TGSI_VOTE:
+   case PIPE_CAP_MAX_WINDOW_RECTANGLES:
       return 0;
 
    case PIPE_CAP_VENDOR_ID:
index b9437b2240c70923d133c7b4924cf2982723de23..1afa43a0b5c2ab97d2842b2847a78f45437959c2 100644 (file)
@@ -261,6 +261,7 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
    case PIPE_CAP_PCI_BUS:
    case PIPE_CAP_PCI_DEVICE:
    case PIPE_CAP_PCI_FUNCTION:
+   case PIPE_CAP_MAX_WINDOW_RECTANGLES:
       return 0;
 
    case PIPE_CAP_VENDOR_ID:
index 681681b64f91d1f973567792eb43c039125db953..8822b4d11bdce7b3ecc320db7aa60a384c83a81f 100644 (file)
@@ -219,6 +219,7 @@ static int r300_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
         case PIPE_CAP_CULL_DISTANCE:
         case PIPE_CAP_PRIMITIVE_RESTART_FOR_PATCHES:
         case PIPE_CAP_TGSI_VOTE:
+        case PIPE_CAP_MAX_WINDOW_RECTANGLES:
             return 0;
 
         /* SWTCL-only features. */
index a49b00f789125f44fcc475abccacafcc929e936a..42384f6124de7c24480251142d2d11e60f4c9199 100644 (file)
@@ -369,6 +369,7 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
        case PIPE_CAP_CULL_DISTANCE:
        case PIPE_CAP_PRIMITIVE_RESTART_FOR_PATCHES:
        case PIPE_CAP_TGSI_VOTE:
+       case PIPE_CAP_MAX_WINDOW_RECTANGLES:
                return 0;
 
        case PIPE_CAP_MAX_SHADER_PATCH_VARYINGS:
index 0c601da9e39f71085d9c4b517e8412f934e606d9..e65a30f2b31253ea90395e7d6f80a2dac39b8ec3 100644 (file)
@@ -415,6 +415,7 @@ static int si_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
        case PIPE_CAP_CULL_DISTANCE:
        case PIPE_CAP_PRIMITIVE_RESTART_FOR_PATCHES:
        case PIPE_CAP_TGSI_VOTE:
+       case PIPE_CAP_MAX_WINDOW_RECTANGLES:
                return 0;
 
        case PIPE_CAP_MAX_SHADER_PATCH_VARYINGS:
index 514009c0453e870a0ad6fe196bda9da09bfe2111..a4b2299c26f654d75a9faeba6d34dcbe680232e9 100644 (file)
@@ -276,6 +276,7 @@ softpipe_get_param(struct pipe_screen *screen, enum pipe_cap param)
    case PIPE_CAP_ROBUST_BUFFER_ACCESS_BEHAVIOR:
    case PIPE_CAP_PRIMITIVE_RESTART_FOR_PATCHES:
    case PIPE_CAP_TGSI_VOTE:
+   case PIPE_CAP_MAX_WINDOW_RECTANGLES:
       return 0;
    case PIPE_CAP_SHADER_BUFFER_OFFSET_ALIGNMENT:
       return 4;
index 243252389ca726c093262eca0e05adcd9802f4df..f6f53afe7eabc166ea6c93746a1f2039bad0a7ec 100644 (file)
@@ -409,6 +409,7 @@ svga_get_param(struct pipe_screen *screen, enum pipe_cap param)
    case PIPE_CAP_CULL_DISTANCE:
    case PIPE_CAP_PRIMITIVE_RESTART_FOR_PATCHES:
    case PIPE_CAP_TGSI_VOTE:
+   case PIPE_CAP_MAX_WINDOW_RECTANGLES:
       return 0;
    }
 
index af82c93fadccc0eebebdaf15a6f0bc6da400da45..792b09cd4381e0f0bb6db86587da24aa3fb978c2 100644 (file)
@@ -362,6 +362,7 @@ swr_get_param(struct pipe_screen *screen, enum pipe_cap param)
    case PIPE_CAP_FRAMEBUFFER_NO_ATTACHMENT:
    case PIPE_CAP_PRIMITIVE_RESTART_FOR_PATCHES:
    case PIPE_CAP_TGSI_VOTE:
+   case PIPE_CAP_MAX_WINDOW_RECTANGLES:
       return 0;
    }
 
index ecc797c77edf18b5ac1a0d34b8097ac307a597bc..c38e4f4381f44d117383746a164e38cb9833157e 100644 (file)
@@ -212,6 +212,7 @@ vc4_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
         case PIPE_CAP_CULL_DISTANCE:
         case PIPE_CAP_PRIMITIVE_RESTART_FOR_PATCHES:
         case PIPE_CAP_TGSI_VOTE:
+        case PIPE_CAP_MAX_WINDOW_RECTANGLES:
                 return 0;
 
                 /* Stream output. */
index 919b64e4cd3907581d35a2095241a0fb4e578c6a..65574fae78816f1a8f4ed53735c657fc7c99a5d8 100644 (file)
@@ -244,6 +244,7 @@ virgl_get_param(struct pipe_screen *screen, enum pipe_cap param)
    case PIPE_CAP_CULL_DISTANCE:
    case PIPE_CAP_PRIMITIVE_RESTART_FOR_PATCHES:
    case PIPE_CAP_TGSI_VOTE:
+   case PIPE_CAP_MAX_WINDOW_RECTANGLES:
       return 0;
    case PIPE_CAP_VENDOR_ID:
       return 0x1af4;
index 569725f4b230ffcd5f83d479086e8323cf6c4925..c46ac5a6a63dc9e279a1d31eb24c6f89ef348461 100644 (file)
@@ -730,6 +730,7 @@ enum pipe_cap
    PIPE_CAP_CULL_DISTANCE,
    PIPE_CAP_PRIMITIVE_RESTART_FOR_PATCHES,
    PIPE_CAP_TGSI_VOTE,
+   PIPE_CAP_MAX_WINDOW_RECTANGLES,
 };
 
 #define PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_NV50 (1 << 0)