This CAP will determine whether ARB_framebuffer_object can be enabled. The nv30 driver does not allow mixing swizzled and linear zsbuf/cbuf textures. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Marek Olšák <marek.olsak@amd.com>tags/mesa-10.1-devel
| @@ -173,6 +173,9 @@ The integer capabilities: | |||
| viewport/scissor combination. | |||
| * ''PIPE_CAP_ENDIANNESS``:: The endianness of the device. Either | |||
| PIPE_ENDIAN_BIG or PIPE_ENDIAN_LITTLE. | |||
| * ``PIPE_CAP_MIXED_FRAMEBUFFER_SIZES``: Whether it is allowed to have | |||
| different sizes for fb color/zs attachments. This controls whether | |||
| ARB_framebuffer_object is provided. | |||
| .. _pipe_capf: | |||
| @@ -140,6 +140,7 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param) | |||
| switch (param) { | |||
| /* Supported features (boolean caps). */ | |||
| case PIPE_CAP_NPOT_TEXTURES: | |||
| case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES: | |||
| case PIPE_CAP_TWO_SIDED_STENCIL: | |||
| case PIPE_CAP_ANISOTROPIC_FILTER: | |||
| case PIPE_CAP_POINT_SPRITE: | |||
| @@ -172,6 +172,7 @@ i915_get_param(struct pipe_screen *screen, enum pipe_cap cap) | |||
| /* Supported features (boolean caps). */ | |||
| case PIPE_CAP_ANISOTROPIC_FILTER: | |||
| case PIPE_CAP_NPOT_TEXTURES: | |||
| case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES: | |||
| case PIPE_CAP_POINT_SPRITE: | |||
| case PIPE_CAP_PRIMITIVE_RESTART: /* draw module */ | |||
| case PIPE_CAP_TEXTURE_SHADOW_MAP: | |||
| @@ -286,6 +286,7 @@ ilo_get_param(struct pipe_screen *screen, enum pipe_cap param) | |||
| switch (param) { | |||
| case PIPE_CAP_NPOT_TEXTURES: | |||
| case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES: | |||
| case PIPE_CAP_TWO_SIDED_STENCIL: | |||
| return true; | |||
| case PIPE_CAP_MAX_DUAL_SOURCE_RENDER_TARGETS: | |||
| @@ -109,6 +109,7 @@ llvmpipe_get_param(struct pipe_screen *screen, enum pipe_cap param) | |||
| case PIPE_CAP_MAX_COMBINED_SAMPLERS: | |||
| return 2 * PIPE_MAX_SAMPLERS; /* VS + FS samplers */ | |||
| case PIPE_CAP_NPOT_TEXTURES: | |||
| case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES: | |||
| return 1; | |||
| case PIPE_CAP_TWO_SIDED_STENCIL: | |||
| return 1; | |||
| @@ -125,6 +125,7 @@ nv30_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param) | |||
| case PIPE_CAP_QUERY_PIPELINE_STATISTICS: | |||
| case PIPE_CAP_TEXTURE_BORDER_COLOR_QUIRK: | |||
| case PIPE_CAP_MAX_TEXTURE_BUFFER_SIZE: | |||
| case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES: | |||
| return 0; | |||
| case PIPE_CAP_VERTEX_BUFFER_OFFSET_4BYTE_ALIGNED_ONLY: | |||
| case PIPE_CAP_VERTEX_BUFFER_STRIDE_4BYTE_ALIGNED_ONLY: | |||
| @@ -103,6 +103,7 @@ nv50_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param) | |||
| case PIPE_CAP_TEXTURE_SWIZZLE: | |||
| case PIPE_CAP_TEXTURE_SHADOW_MAP: | |||
| case PIPE_CAP_NPOT_TEXTURES: | |||
| case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES: | |||
| case PIPE_CAP_ANISOTROPIC_FILTER: | |||
| case PIPE_CAP_SCALED_RESOLVE: | |||
| case PIPE_CAP_TEXTURE_BUFFER_OBJECTS: | |||
| @@ -88,6 +88,7 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param) | |||
| case PIPE_CAP_TEXTURE_SWIZZLE: | |||
| case PIPE_CAP_TEXTURE_SHADOW_MAP: | |||
| case PIPE_CAP_NPOT_TEXTURES: | |||
| case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES: | |||
| case PIPE_CAP_ANISOTROPIC_FILTER: | |||
| case PIPE_CAP_SEAMLESS_CUBE_MAP: | |||
| case PIPE_CAP_CUBE_MAP_ARRAY: | |||
| @@ -89,6 +89,7 @@ static int r300_get_param(struct pipe_screen* pscreen, enum pipe_cap param) | |||
| switch (param) { | |||
| /* Supported features (boolean caps). */ | |||
| case PIPE_CAP_NPOT_TEXTURES: | |||
| case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES: | |||
| case PIPE_CAP_TWO_SIDED_STENCIL: | |||
| case PIPE_CAP_ANISOTROPIC_FILTER: | |||
| case PIPE_CAP_POINT_SPRITE: | |||
| @@ -390,6 +390,7 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param) | |||
| switch (param) { | |||
| /* Supported features (boolean caps). */ | |||
| case PIPE_CAP_NPOT_TEXTURES: | |||
| case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES: | |||
| case PIPE_CAP_TWO_SIDED_STENCIL: | |||
| case PIPE_CAP_ANISOTROPIC_FILTER: | |||
| case PIPE_CAP_POINT_SPRITE: | |||
| @@ -301,6 +301,7 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param) | |||
| case PIPE_CAP_USER_CONSTANT_BUFFERS: | |||
| case PIPE_CAP_START_INSTANCE: | |||
| case PIPE_CAP_NPOT_TEXTURES: | |||
| case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES: | |||
| case PIPE_CAP_PREFER_BLIT_BASED_TEXTURE_TRANSFER: | |||
| case PIPE_CAP_TGSI_INSTANCEID: | |||
| case PIPE_CAP_COMPUTE: | |||
| @@ -69,6 +69,7 @@ softpipe_get_param(struct pipe_screen *screen, enum pipe_cap param) | |||
| case PIPE_CAP_MAX_COMBINED_SAMPLERS: | |||
| return 2 * PIPE_MAX_SAMPLERS; /* VS + FS */ | |||
| case PIPE_CAP_NPOT_TEXTURES: | |||
| case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES: | |||
| return 1; | |||
| case PIPE_CAP_TWO_SIDED_STENCIL: | |||
| return 1; | |||
| @@ -141,6 +141,7 @@ svga_get_param(struct pipe_screen *screen, enum pipe_cap param) | |||
| case PIPE_CAP_MAX_COMBINED_SAMPLERS: | |||
| return 16; | |||
| case PIPE_CAP_NPOT_TEXTURES: | |||
| case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES: | |||
| return 1; | |||
| case PIPE_CAP_TWO_SIDED_STENCIL: | |||
| return 1; | |||
| @@ -512,7 +512,8 @@ enum pipe_cap { | |||
| PIPE_CAP_TEXTURE_BORDER_COLOR_QUIRK = 82, | |||
| PIPE_CAP_MAX_TEXTURE_BUFFER_SIZE = 83, | |||
| PIPE_CAP_MAX_VIEWPORTS = 84, | |||
| PIPE_CAP_ENDIANNESS = 85 | |||
| PIPE_CAP_ENDIANNESS = 85, | |||
| PIPE_CAP_MIXED_FRAMEBUFFER_SIZES = 86 | |||
| }; | |||
| #define PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_NV50 (1 << 0) | |||