diff --git a/src/nouveau/vulkan/nvk_cmd_draw.c b/src/nouveau/vulkan/nvk_cmd_draw.c index fa33faa8f5c..6d4f846ce2d 100644 --- a/src/nouveau/vulkan/nvk_cmd_draw.c +++ b/src/nouveau/vulkan/nvk_cmd_draw.c @@ -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 diff --git a/src/nouveau/vulkan/nvk_graphics_pipeline.c b/src/nouveau/vulkan/nvk_graphics_pipeline.c index 2f66aa97a82..c5661024235 100644 --- a/src/nouveau/vulkan/nvk_graphics_pipeline.c +++ b/src/nouveau/vulkan/nvk_graphics_pipeline.c @@ -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);