gallium: Add PIPE_CAP_START_INSTANCE
authorFredrik Höglund <fredrik@kde.org>
Mon, 18 Jun 2012 20:50:02 +0000 (22:50 +0200)
committerBrian Paul <brianp@vmware.com>
Tue, 19 Jun 2012 13:57:22 +0000 (07:57 -0600)
Reviewed-by: Brian Paul <brianp@vmware.com>
src/gallium/docs/source/screen.rst
src/gallium/drivers/i915/i915_screen.c
src/gallium/drivers/nv30/nv30_screen.c
src/gallium/drivers/nv50/nv50_screen.c
src/gallium/drivers/nvc0/nvc0_screen.c
src/gallium/drivers/r300/r300_screen.c
src/gallium/drivers/r600/r600_pipe.c
src/gallium/drivers/radeonsi/radeonsi_pipe.c
src/gallium/drivers/svga/svga_screen.c
src/gallium/include/pipe/p_defines.h

index c86e1c6e7fcba2ec6f485c9745f55fca600ea8d6..2c683efa9a76fa464f581e2e49edae346907f3ee 100644 (file)
@@ -126,7 +126,8 @@ The integer capabilities:
   resources.
 * ``PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT``: Describes the required
   alignment of pipe_constant_buffer::buffer_offset.
-
+* ``PIPE_CAP_START_INSTANCE``: Whether the driver supports
+  pipe_draw_info::start_instance.
 
 
 .. _pipe_capf:
index 00468602c090eb9c86a2f052b171d0cddbf67410..9f293392f81679e6decd036a9b95f4252fed8f7a 100644 (file)
@@ -206,6 +206,7 @@ i915_get_param(struct pipe_screen *screen, enum pipe_cap cap)
    case PIPE_CAP_TGSI_CAN_COMPACT_CONSTANTS:
    case PIPE_CAP_VERTEX_COLOR_UNCLAMPED:
    case PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION:
+   case PIPE_CAP_START_INSTANCE:
       return 0;
 
    case PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT:
index f9e647dbd13aa367e8a845f2eff1273d6f6ef940..ffb49c9da7655ca8a2747a767fdc77410464b3ca 100644 (file)
@@ -115,6 +115,7 @@ nv30_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
    case PIPE_CAP_VERTEX_COLOR_UNCLAMPED:
    case PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION:
    case PIPE_CAP_MIXED_COLORBUFFER_FORMATS:
+   case PIPE_CAP_START_INSTANCE:
       return 0;
    case PIPE_CAP_VERTEX_BUFFER_OFFSET_4BYTE_ALIGNED_ONLY:
    case PIPE_CAP_VERTEX_BUFFER_STRIDE_4BYTE_ALIGNED_ONLY:
index 9567abbf352f080313cee6c9af520a83370a9f47..6c3f69f5835ade3eff46e47bb7327fc5b32106e3 100644 (file)
@@ -148,6 +148,7 @@ nv50_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
    case PIPE_CAP_CONDITIONAL_RENDER:
    case PIPE_CAP_TEXTURE_BARRIER:
    case PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION:
+   case PIPE_CAP_START_INSTANCE:
       return 1;
    case PIPE_CAP_TGSI_CAN_COMPACT_VARYINGS:
    case PIPE_CAP_TGSI_CAN_COMPACT_CONSTANTS:
index 49d611844717d7bf1b4896911cc7f369f2148423..0ed3a560194919cc525d12aaf7ce9d0bf5a45a23 100644 (file)
@@ -136,6 +136,7 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
    case PIPE_CAP_CONDITIONAL_RENDER:
    case PIPE_CAP_TEXTURE_BARRIER:
    case PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION:
+   case PIPE_CAP_START_INSTANCE:
       return 1;
    case PIPE_CAP_TGSI_CAN_COMPACT_VARYINGS:
    case PIPE_CAP_TGSI_CAN_COMPACT_CONSTANTS:
index da47fa200720f91ecdc6e3bed6590931d449e29b..749c8509b185a091b5471de56e5f6e207dd6f81a 100644 (file)
@@ -147,6 +147,7 @@ static int r300_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
         case PIPE_CAP_FRAGMENT_COLOR_CLAMPED:
         case PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION:
         case PIPE_CAP_COMPUTE:
+        case PIPE_CAP_START_INSTANCE:
             return 0;
 
         /* SWTCL-only features. */
index e9b1445200da868233c3c4a2edd99119b3a2567c..435aa7715bae4fc69a015ec4f72ced8b5aa72c80 100644 (file)
@@ -383,6 +383,7 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
        case PIPE_CAP_USER_INDEX_BUFFERS:
        case PIPE_CAP_USER_CONSTANT_BUFFERS:
        case PIPE_CAP_COMPUTE:
+       case PIPE_CAP_START_INSTANCE:
                return 1;
 
        case PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT:
index 8dd713773fc3e8a35c9284349ac7705b491d1d24..e58a35d4fc52d96fc5afd0559a93d8ded74a8cbf 100644 (file)
@@ -325,6 +325,7 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
        case PIPE_CAP_VERTEX_ELEMENT_SRC_OFFSET_4BYTE_ALIGNED_ONLY:
        case PIPE_CAP_USER_INDEX_BUFFERS:
        case PIPE_CAP_USER_CONSTANT_BUFFERS:
+       case PIPE_CAP_START_INSTANCE:
                return 1;
 
        case PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT:
index 64ec658b80e632c45a761a8570cf62953e906fa5..b137e954a577939da9419d29aa962081f1d26667 100644 (file)
@@ -243,6 +243,7 @@ svga_get_param(struct pipe_screen *screen, enum pipe_cap param)
    case PIPE_CAP_GLSL_FEATURE_LEVEL:
    case PIPE_CAP_VERTEX_BUFFER_OFFSET_4BYTE_ALIGNED_ONLY:
    case PIPE_CAP_VERTEX_BUFFER_STRIDE_4BYTE_ALIGNED_ONLY:
+   case PIPE_CAP_START_INSTANCE:
       return 0;
    case PIPE_CAP_VERTEX_ELEMENT_SRC_OFFSET_4BYTE_ALIGNED_ONLY:
       return 1;
index 585cab2e93433ff751a2c63ad7be062f489ed391..479b26e151707f0cb494c70e425b2c71aa95a7fd 100644 (file)
@@ -484,7 +484,8 @@ enum pipe_cap {
    PIPE_CAP_COMPUTE = 68,
    PIPE_CAP_USER_INDEX_BUFFERS = 69,
    PIPE_CAP_USER_CONSTANT_BUFFERS = 70,
-   PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT = 71
+   PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT = 71,
+   PIPE_CAP_START_INSTANCE = 72
 };
 
 /**