summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChristoph Bumiller <[email protected]>2012-01-20 13:43:32 +0100
committerChristoph Bumiller <[email protected]>2012-01-20 19:24:31 +0100
commitab69d584f923101fab05560b8e9ff97cf3cc2c5f (patch)
tree3546b64e1b30fdde8d245db8e755b0f3b7b13828 /src
parent0d27be3d7982d38d3c26e693be959a9e6b776e5f (diff)
nvc0: fix some limit cap values
NOTE: This is a candidate for the 8.0 branch.
Diffstat (limited to 'src')
-rw-r--r--src/gallium/drivers/nvc0/nvc0_screen.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/src/gallium/drivers/nvc0/nvc0_screen.c b/src/gallium/drivers/nvc0/nvc0_screen.c
index a991e67af5c..f9ad39df706 100644
--- a/src/gallium/drivers/nvc0/nvc0_screen.c
+++ b/src/gallium/drivers/nvc0/nvc0_screen.c
@@ -69,15 +69,14 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
{
switch (param) {
case PIPE_CAP_MAX_COMBINED_SAMPLERS:
- return 64;
+ return 16 * PIPE_SHADER_TYPES; /* NOTE: should not count COMPUTE */
case PIPE_CAP_MAX_TEXTURE_2D_LEVELS:
- return 13;
- case PIPE_CAP_MAX_TEXTURE_3D_LEVELS:
- return 10;
case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS:
- return 13;
+ return 15;
+ case PIPE_CAP_MAX_TEXTURE_3D_LEVELS:
+ return 12;
case PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS:
- return 8192;
+ return 2048;
case PIPE_CAP_MIN_TEXEL_OFFSET:
return -8;
case PIPE_CAP_MAX_TEXEL_OFFSET:
@@ -167,7 +166,9 @@ nvc0_screen_get_shader_param(struct pipe_screen *pscreen, unsigned shader,
case PIPE_SHADER_CAP_MAX_INPUTS:
if (shader == PIPE_SHADER_VERTEX)
return 32;
- return 0x300 / 16;
+ if (shader == PIPE_SHADER_FRAGMENT)
+ return (0x200 + 0x20 + 0x80) / 16; /* generic + colors + TexCoords */
+ return (0x200 + 0x40 + 0x80) / 16; /* without 0x60 for per-patch inputs */
case PIPE_SHADER_CAP_MAX_CONSTS:
return 65536 / 16;
case PIPE_SHADER_CAP_MAX_CONST_BUFFERS:
@@ -191,7 +192,11 @@ nvc0_screen_get_shader_param(struct pipe_screen *pscreen, unsigned shader,
case PIPE_SHADER_CAP_INTEGERS:
return 1;
case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS:
+ return 16; /* would be 32 in linked (OpenGL-style) mode */
+ /*
+ case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLER_VIEWS:
return 32;
+ */
case PIPE_SHADER_CAP_OUTPUT_READ:
return 0; /* shader != PIPE_SHADER_TESSELLATION_CONTROL; */
default:
@@ -208,12 +213,13 @@ nvc0_screen_get_paramf(struct pipe_screen *pscreen, enum pipe_capf param)
case PIPE_CAPF_MAX_LINE_WIDTH_AA:
return 10.0f;
case PIPE_CAPF_MAX_POINT_WIDTH:
+ return 63.0f;
case PIPE_CAPF_MAX_POINT_WIDTH_AA:
- return 64.0f;
+ return 63.375f;
case PIPE_CAPF_MAX_TEXTURE_ANISOTROPY:
return 16.0f;
case PIPE_CAPF_MAX_TEXTURE_LOD_BIAS:
- return 4.0f;
+ return 15.0f;
default:
NOUVEAU_ERR("unknown PIPE_CAP %d\n", param);
return 0.0f;