diff options
author | Ilia Mirkin <[email protected]> | 2014-10-23 00:43:45 -0400 |
---|---|---|
committer | Ilia Mirkin <[email protected]> | 2014-11-15 14:14:51 -0500 |
commit | 3bc42a09e2d13c42e15423a17b5c571049a11224 (patch) | |
tree | 5281a49450f2486530bf8a66f914b93080830f3f /src/gallium/drivers/nouveau/nvc0 | |
parent | 61c68b69d704b5faa5ff9d2b73b24bebf7e19412 (diff) |
nv50,nvc0: use clip_halfz setting when creating rasterizer state
This enables the ARB_clip_control extension.
Signed-off-by: Ilia Mirkin <[email protected]>
Cc: "10.4" <[email protected]>
Diffstat (limited to 'src/gallium/drivers/nouveau/nvc0')
-rw-r--r-- | src/gallium/drivers/nouveau/nvc0/nvc0_3d.xml.h | 2 | ||||
-rw-r--r-- | src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 2 | ||||
-rw-r--r-- | src/gallium/drivers/nouveau/nvc0/nvc0_state.c | 2 |
3 files changed, 5 insertions, 1 deletions
diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_3d.xml.h b/src/gallium/drivers/nouveau/nvc0/nvc0_3d.xml.h index 94b447b088f..5bd5e95370f 100644 --- a/src/gallium/drivers/nouveau/nvc0/nvc0_3d.xml.h +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_3d.xml.h @@ -318,6 +318,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define NVC0_3D_VERTEX_BUFFER_COUNT 0x00000d78 +#define NVC0_3D_DEPTH_CLIP_NEGATIVE_Z 0x00000d7c + #define NVC0_3D_CLEAR_COLOR(i0) (0x00000d80 + 0x4*(i0)) #define NVC0_3D_CLEAR_COLOR__ESIZE 0x00000004 #define NVC0_3D_CLEAR_COLOR__LEN 0x00000004 diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c index 4d4d5eb340a..2a759311bf7 100644 --- a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c @@ -171,6 +171,7 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param) case PIPE_CAP_TGSI_FS_FINE_DERIVATIVE: case PIPE_CAP_CONDITIONAL_RENDER_INVERTED: case PIPE_CAP_SAMPLER_VIEW_TARGET: + case PIPE_CAP_CLIP_HALFZ: return 1; case PIPE_CAP_SEAMLESS_CUBE_MAP_PER_TEXTURE: return (class_3d >= NVE4_3D_CLASS) ? 1 : 0; @@ -188,7 +189,6 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param) case PIPE_CAP_TGSI_VS_LAYER_VIEWPORT: case PIPE_CAP_FAKE_SW_MSAA: case PIPE_CAP_TGSI_VS_WINDOW_SPACE_POSITION: - case PIPE_CAP_CLIP_HALFZ: return 0; case PIPE_CAP_VENDOR_ID: diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_state.c b/src/gallium/drivers/nouveau/nvc0/nvc0_state.c index d1a7cf51559..54deb20cb0c 100644 --- a/src/gallium/drivers/nouveau/nvc0/nvc0_state.c +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_state.c @@ -313,6 +313,8 @@ nvc0_rasterizer_state_create(struct pipe_context *pipe, SB_BEGIN_3D(so, VIEW_VOLUME_CLIP_CTRL, 1); SB_DATA (so, reg); + SB_IMMED_3D(so, DEPTH_CLIP_NEGATIVE_Z, cso->clip_halfz); + assert(so->size <= (sizeof(so->state) / sizeof(so->state[0]))); return (void *)so; } |