nv50,nvc0: use clip_halfz setting when creating rasterizer state
This enables the ARB_clip_control extension. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Cc: "10.4" <mesa-stable@lists.freedesktop.org>
This commit is contained in:
parent
61c68b69d7
commit
3bc42a09e2
|
@ -187,7 +187,7 @@ GL 4.4, GLSL 4.40:
|
|||
GL 4.5, GLSL 4.50:
|
||||
|
||||
GL_ARB_ES3_1_compatibility not started
|
||||
GL_ARB_clip_control DONE (llvmpipe, softpipe, r300, r600, radeonsi)
|
||||
GL_ARB_clip_control DONE (nv50, nvc0, r300, r600, radeonsi, llvmpipe, softpipe)
|
||||
GL_ARB_conditional_render_inverted DONE (i965, nv50, nvc0, llvmpipe, softpipe)
|
||||
GL_ARB_cull_distance not started
|
||||
GL_ARB_derivative_control DONE (i965, nv50, nvc0, r600)
|
||||
|
|
|
@ -47,7 +47,7 @@ Note: some of the new features are only available with certain drivers.
|
|||
<li>GL_ARB_conditional_render_inverted on nv50</li>
|
||||
<li>GL_ARB_sample_shading on r600</li>
|
||||
<li>GL_ARB_texture_view on nv50, nvc0</li>
|
||||
<li>GL_ARB_clip_control on llvmpipe, softpipe, r300, r600, radeonsi</li>
|
||||
<li>GL_ARB_clip_control on nv50, nvc0, r300, r600, radeonsi, llvmpipe, softpipe</li>
|
||||
<li>GL_KHR_context_flush_control on all drivers</li>
|
||||
</ul>
|
||||
|
||||
|
|
|
@ -415,7 +415,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
|
||||
#define NV50_3D_VERTEX_BUFFER_COUNT 0x00000d78
|
||||
|
||||
#define NV50_3D_UNK0D7C 0x00000d7c
|
||||
#define NV50_3D_DEPTH_CLIP_NEGATIVE_Z 0x00000d7c
|
||||
|
||||
#define NV50_3D_CLEAR_COLOR(i0) (0x00000d80 + 0x4*(i0))
|
||||
#define NV50_3D_CLEAR_COLOR__ESIZE 0x00000004
|
||||
|
|
|
@ -173,6 +173,7 @@ nv50_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
|
|||
case PIPE_CAP_TGSI_FS_FINE_DERIVATIVE:
|
||||
case PIPE_CAP_SAMPLER_VIEW_TARGET:
|
||||
case PIPE_CAP_CONDITIONAL_RENDER_INVERTED:
|
||||
case PIPE_CAP_CLIP_HALFZ:
|
||||
return 1;
|
||||
case PIPE_CAP_SEAMLESS_CUBE_MAP:
|
||||
return 1; /* class_3d >= NVA0_3D_CLASS; */
|
||||
|
@ -204,7 +205,6 @@ nv50_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
|
|||
case PIPE_CAP_TGSI_VS_WINDOW_SPACE_POSITION:
|
||||
case PIPE_CAP_COMPUTE:
|
||||
case PIPE_CAP_DRAW_INDIRECT:
|
||||
case PIPE_CAP_CLIP_HALFZ:
|
||||
return 0;
|
||||
|
||||
case PIPE_CAP_VENDOR_ID:
|
||||
|
|
|
@ -333,6 +333,9 @@ nv50_rasterizer_state_create(struct pipe_context *pipe,
|
|||
SB_BEGIN_3D(so, VIEW_VOLUME_CLIP_CTRL, 1);
|
||||
SB_DATA (so, reg);
|
||||
|
||||
SB_BEGIN_3D(so, DEPTH_CLIP_NEGATIVE_Z, 1);
|
||||
SB_DATA (so, cso->clip_halfz);
|
||||
|
||||
assert(so->size <= (sizeof(so->state) / sizeof(so->state[0])));
|
||||
return (void *)so;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue