Mesa (master): nv50,nvc0: handle new PIPE_CAPs
Christoph Bumiller
chrisbmr at kemper.freedesktop.org
Mon Jan 9 23:44:33 UTC 2012
Module: Mesa
Branch: master
Commit: f37c3a3335821c0d0e13238846b2726b3fdaba71
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f37c3a3335821c0d0e13238846b2726b3fdaba71
Author: Christoph Bumiller <e0425955 at student.tuwien.ac.at>
Date: Sat Jan 7 00:39:54 2012 +0100
nv50,nvc0: handle new PIPE_CAPs
---
src/gallium/drivers/nv50/nv50_screen.c | 10 ++++++++++
src/gallium/drivers/nvc0/nvc0_screen.c | 5 +++++
2 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/src/gallium/drivers/nv50/nv50_screen.c b/src/gallium/drivers/nv50/nv50_screen.c
index 4f22284..7ee90f1 100644
--- a/src/gallium/drivers/nv50/nv50_screen.c
+++ b/src/gallium/drivers/nv50/nv50_screen.c
@@ -98,6 +98,7 @@ nv50_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
case PIPE_CAP_ANISOTROPIC_FILTER:
case PIPE_CAP_SCALED_RESOLVE:
return 1;
+ case PIPE_CAP_STREAM_OUTPUT_PAUSE_RESUME:
case PIPE_CAP_SEAMLESS_CUBE_MAP:
return nv50_screen(pscreen)->tesla->grclass >= NVA0_3D;
case PIPE_CAP_SEAMLESS_CUBE_MAP_PER_TEXTURE:
@@ -118,6 +119,10 @@ nv50_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
return 1;
case PIPE_CAP_MAX_STREAM_OUTPUT_BUFFERS:
return 0;
+ case PIPE_CAP_MAX_STREAM_OUTPUT_INTERLEAVED_COMPONENTS:
+ return 128;
+ case PIPE_CAP_MAX_STREAM_OUTPUT_SEPARATE_COMPONENTS:
+ return 32;
case PIPE_CAP_BLEND_EQUATION_SEPARATE:
case PIPE_CAP_INDEP_BLEND_ENABLE:
return 1;
@@ -138,6 +143,9 @@ nv50_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
case PIPE_CAP_CONDITIONAL_RENDER:
case PIPE_CAP_TEXTURE_BARRIER:
return 1;
+ case PIPE_CAP_TGSI_CAN_COMPACT_VARYINGS:
+ case PIPE_CAP_TGSI_CAN_COMPACT_CONSTANTS:
+ return 0; /* state trackers will know better */
default:
NOUVEAU_ERR("unknown PIPE_CAP %d\n", param);
return 0;
@@ -193,6 +201,8 @@ nv50_screen_get_shader_param(struct pipe_screen *pscreen, unsigned shader,
return 0;
case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS:
return 32;
+ case PIPE_SHADER_CAP_OUTPUT_READ:
+ return 0; /* maybe support this for fragment shaders ? */
default:
NOUVEAU_ERR("unknown PIPE_SHADER_CAP %d\n", param);
return 0;
diff --git a/src/gallium/drivers/nvc0/nvc0_screen.c b/src/gallium/drivers/nvc0/nvc0_screen.c
index 069e68f..cecca0d 100644
--- a/src/gallium/drivers/nvc0/nvc0_screen.c
+++ b/src/gallium/drivers/nvc0/nvc0_screen.c
@@ -130,6 +130,9 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
case PIPE_CAP_CONDITIONAL_RENDER:
case PIPE_CAP_TEXTURE_BARRIER:
return 1;
+ case PIPE_CAP_TGSI_CAN_COMPACT_VARYINGS:
+ case PIPE_CAP_TGSI_CAN_COMPACT_CONSTANTS:
+ return 0; /* state trackers will know better */
default:
NOUVEAU_ERR("unknown PIPE_CAP %d\n", param);
return 0;
@@ -189,6 +192,8 @@ nvc0_screen_get_shader_param(struct pipe_screen *pscreen, unsigned shader,
return 1;
case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS:
return 32;
+ case PIPE_SHADER_CAP_OUTPUT_READ:
+ return 0; /* shader != PIPE_SHADER_TESSELLATION_CONTROL; */
default:
NOUVEAU_ERR("unknown PIPE_SHADER_CAP %d\n", param);
return 0;
More information about the mesa-commit
mailing list