Mesa (main): v3d: add ARB_polygon_offset_clamp extension support
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Jun 9 09:24:09 UTC 2022
Module: Mesa
Branch: main
Commit: ef6cc03b175c6f43b055e2d2ba23777e7ce82003
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ef6cc03b175c6f43b055e2d2ba23777e7ce82003
Author: Juan A. Suarez Romero <jasuarez at igalia.com>
Date: Wed Jun 8 11:49:29 2022 +0200
v3d: add ARB_polygon_offset_clamp extension support
Signed-off-by: Juan A. Suarez Romero <jasuarez at igalia.com>
Reviewed-by: Iago Toral Quiroga <itoral at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16925>
---
docs/features.txt | 2 +-
src/gallium/drivers/v3d/v3d_screen.c | 3 +++
src/gallium/drivers/v3d/v3dx_state.c | 6 ++++++
3 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/docs/features.txt b/docs/features.txt
index 0e749d94d37..3bd71a7fdf2 100644
--- a/docs/features.txt
+++ b/docs/features.txt
@@ -230,7 +230,7 @@ GL 4.6, GLSL 4.60 -- all DONE: radeonsi, zink
GL_ARB_gl_spirv DONE (i965/gen7+, llvmpipe)
GL_ARB_indirect_parameters DONE (i965/gen7+, nvc0, llvmpipe, virgl, d3d12)
GL_ARB_pipeline_statistics_query DONE (i965, nvc0, r600, llvmpipe, softpipe, )
- GL_ARB_polygon_offset_clamp DONE (freedreno, i965, nv50, nvc0, r600, llvmpipe, virgl)
+ GL_ARB_polygon_offset_clamp DONE (freedreno, i965, nv50, nvc0, r600, llvmpipe, v3d, virgl)
GL_ARB_shader_atomic_counter_ops DONE (freedreno/a5xx+, i965/gen7+, nvc0, r600, llvmpipe, softpipe, virgl, v3d)
GL_ARB_shader_draw_parameters DONE (i965, llvmpipe, nvc0, d3d12)
GL_ARB_shader_group_vote DONE (i965, nvc0, llvmpipe)
diff --git a/src/gallium/drivers/v3d/v3d_screen.c b/src/gallium/drivers/v3d/v3d_screen.c
index 8e610be37da..a93879d1583 100644
--- a/src/gallium/drivers/v3d/v3d_screen.c
+++ b/src/gallium/drivers/v3d/v3d_screen.c
@@ -150,6 +150,9 @@ v3d_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
case PIPE_CAP_INDEP_BLEND_FUNC:
return 1;
+ case PIPE_CAP_POLYGON_OFFSET_CLAMP:
+ return screen->devinfo.ver >= 41;
+
case PIPE_CAP_TEXTURE_QUERY_LOD:
return screen->devinfo.ver >= 42;
break;
diff --git a/src/gallium/drivers/v3d/v3dx_state.c b/src/gallium/drivers/v3d/v3dx_state.c
index 249910ed606..ce293218447 100644
--- a/src/gallium/drivers/v3d/v3dx_state.c
+++ b/src/gallium/drivers/v3d/v3dx_state.c
@@ -105,6 +105,9 @@ v3d_create_rasterizer_state(struct pipe_context *pctx,
v3dx_pack(&so->depth_offset, DEPTH_OFFSET, depth) {
depth.depth_offset_factor = cso->offset_scale;
depth.depth_offset_units = cso->offset_units;
+#if V3D_VERSION >= 41
+ depth.limit = cso->offset_clamp;
+#endif
}
/* The HW treats polygon offset units based on a Z24 buffer, so we
@@ -113,6 +116,9 @@ v3d_create_rasterizer_state(struct pipe_context *pctx,
v3dx_pack(&so->depth_offset_z16, DEPTH_OFFSET, depth) {
depth.depth_offset_factor = cso->offset_scale;
depth.depth_offset_units = cso->offset_units * 256.0;
+#if V3D_VERSION >= 41
+ depth.limit = cso->offset_clamp;
+#endif
}
return so;
More information about the mesa-commit
mailing list