diff options
author | Dave Airlie <airlied@redhat.com> | 2015-11-30 16:01:31 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2015-12-04 04:10:51 +0000 |
commit | 8fda7a8326f035fe604702f4ec4ae0007de16cb9 (patch) | |
tree | bed24597ceff80ce4d54b0d6dad7fb858027799f | |
parent | 5641bf893d697d2265fff1cc141c3e07ba3696de (diff) |
r600: enable tessellation for evergreen/cayman (v2)
This enables tessellation for evergreen/cayman,
This will need changes before committing depending
on what hw works etc.
working are CAYMAN/REDWOOD/BARTS/TURKS/SUMO/CAICOS
v2: only enable on evergreen and above.
-rw-r--r-- | src/gallium/drivers/r600/r600_pipe.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c index 78af44ddda5..822dfe7cc21 100644 --- a/src/gallium/drivers/r600/r600_pipe.c +++ b/src/gallium/drivers/r600/r600_pipe.c @@ -343,7 +343,6 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param) case PIPE_CAP_USER_VERTEX_BUFFERS: case PIPE_CAP_TEXTURE_GATHER_OFFSETS: case PIPE_CAP_VERTEXID_NOBASE: - case PIPE_CAP_MAX_SHADER_PATCH_VARYINGS: case PIPE_CAP_DEPTH_BOUNDS_TEST: case PIPE_CAP_FORCE_PERSAMPLE_INTERP: case PIPE_CAP_SHAREABLE_SHADERS: @@ -351,6 +350,11 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param) case PIPE_CAP_CLEAR_TEXTURE: return 0; + case PIPE_CAP_MAX_SHADER_PATCH_VARYINGS: + if (family >= CHIP_CEDAR) + return 30; + else + return 0; /* Stream output. */ case PIPE_CAP_MAX_STREAM_OUTPUT_BUFFERS: return rscreen->b.has_streamout ? 4 : 0; @@ -446,6 +450,10 @@ static int r600_get_shader_param(struct pipe_screen* pscreen, unsigned shader, e if (rscreen->b.info.drm_minor >= 37) break; return 0; + case PIPE_SHADER_TESS_CTRL: + case PIPE_SHADER_TESS_EVAL: + if (rscreen->b.family >= CHIP_CEDAR) + break; default: /* XXX: support tessellation on Evergreen */ return 0; |