mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-07 06:30:11 +01:00
If the shader writes point size, then the compiler needs to ensure it writes it in the appropriate vpm output slot and also clamp its value to expected limits. This is why we have the per_vertex_point_size in the shader key, so it doesn't really make sense to set this if the shader doesn't write point size. If the shader record flags that the shader writes point size then the hardware will use the shader written value to override point size state (set with the POINT_SIZE packet), so again, we really only want to set this in the shader state record if the shader actually writes its value. While we could also limit this to point primitives, since these are the only primitives where point size has an effect, this is not really required, and skipping this allows us to use the same shader with any primitive type (otherwise we would have to compile 2 different shaders). Finally, this change makes the vertex shader setup for point size match the one we had been doing for geometry shaders, so it makes both stages behave consistently regarding point size behavior. Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29413> |
||
|---|---|---|
| .. | ||
| .dir-locals.el | ||
| .editorconfig | ||
| meson.build | ||
| v3dv_android.c | ||
| v3dv_bo.c | ||
| v3dv_bo.h | ||
| v3dv_cl.h | ||
| v3dv_cmd_buffer.c | ||
| v3dv_debug.c | ||
| v3dv_debug.h | ||
| v3dv_descriptor_set.c | ||
| v3dv_device.c | ||
| v3dv_event.c | ||
| v3dv_formats.c | ||
| v3dv_image.c | ||
| v3dv_limits.h | ||
| v3dv_meta_clear.c | ||
| v3dv_meta_common.h | ||
| v3dv_meta_copy.c | ||
| v3dv_pass.c | ||
| v3dv_pipeline.c | ||
| v3dv_pipeline_cache.c | ||
| v3dv_private.h | ||
| v3dv_query.c | ||
| v3dv_queue.c | ||
| v3dv_uniforms.c | ||
| v3dv_wsi.c | ||
| v3dvx_cl.c | ||
| v3dvx_cmd_buffer.c | ||
| v3dvx_descriptor_set.c | ||
| v3dvx_device.c | ||
| v3dvx_formats.c | ||
| v3dvx_image.c | ||
| v3dvx_meta_common.c | ||
| v3dvx_pipeline.c | ||
| v3dvx_private.h | ||
| v3dvx_query.c | ||
| v3dvx_queue.c | ||