v3dv: enable fillModeNonSolid
This, together with the shaderClipDistance changes, gets vkQuake3
to run without hacks.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6766>
diff --git a/src/broadcom/vulkan/v3dv_device.c b/src/broadcom/vulkan/v3dv_device.c
index 3d0405d..6aea3cd 100644
--- a/src/broadcom/vulkan/v3dv_device.c
+++ b/src/broadcom/vulkan/v3dv_device.c
@@ -586,7 +586,7 @@
.drawIndirectFirstInstance = false,
.depthClamp = false,
.depthBiasClamp = false,
- .fillModeNonSolid = false,
+ .fillModeNonSolid = true,
.depthBounds = false, /* Only available since V3D 4.3.16.2 */
.wideLines = true,
.largePoints = false,
diff --git a/src/broadcom/vulkan/v3dv_pipeline.c b/src/broadcom/vulkan/v3dv_pipeline.c
index c735807..cfe7fc7 100644
--- a/src/broadcom/vulkan/v3dv_pipeline.c
+++ b/src/broadcom/vulkan/v3dv_pipeline.c
@@ -2023,6 +2023,12 @@
*/
config.line_rasterization = 1; /* perp end caps */
+ if (rs_info && rs_info->polygonMode != VK_POLYGON_MODE_FILL) {
+ config.direct3d_wireframe_triangles_mode = true;
+ config.direct3d_point_fill_mode =
+ rs_info->polygonMode == VK_POLYGON_MODE_POINT;
+ }
+
/* FIXME: oversample_mode postponed until msaa gets supported */
config.rasterizer_oversample_mode = false;