nvk: Handle missing gl_PointSize in the last geometry stage

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27795>
This commit is contained in:
Faith Ekstrand
2024-02-25 13:09:21 -06:00
committed by Marge Bot
parent 4287d04e98
commit a120022b02
2 changed files with 5 additions and 6 deletions
-6
View File
@@ -255,14 +255,8 @@ nvk_push_draw_state_init(struct nvk_device *dev, struct nv_push *p)
.output7 = OUTPUT7_FALSE,
});
/* vulkan allows setting point sizes only within shaders */
P_IMMD(p, NV9097, SET_ATTRIBUTE_POINT_SIZE, {
.enable = ENABLE_TRUE,
.slot = 0,
});
P_IMMD(p, NV9097, SET_POINT_SIZE, fui(1.0));
/* From vulkan spec's point rasterization:
* "Point rasterization produces a fragment for each fragment area group of
* framebuffer pixels with one or more sample points that intersect a region
@@ -417,6 +417,11 @@ nvk_graphics_pipeline_create(struct nvk_device *dev,
CONTROL_V_SELECTS_LAYER,
});
P_IMMD(p, NV9097, SET_ATTRIBUTE_POINT_SIZE, {
.enable = last_geom->info.vtg.writes_point_size,
.slot = 0,
});
emit_pipeline_xfb_state(&push, &last_geom->info.vtg.xfb);
emit_pipeline_ct_write_state(&push, state.cb, state.rp);