lima: add support for gl_PointSize

GP handles gl_PointSize similar to gl_Position, i.e. it needs
separate buffer and it has special type in varying descriptors, also
for indexed draw we need to emit special PLBU command to pass
address of gl_PointSize buffer.

Blob also clamps gl_PointSize to 1 .. 100 (as well as line width),
so let's do the same.

Reviewed-by: Andreas Baierl <ichgeh@imkreisrum.de>
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
This commit is contained in:
Vasily Khoruzhick
2019-11-01 19:23:57 -07:00
parent 73cc2fec10
commit 65a5b24aee
7 changed files with 90 additions and 741 deletions

View File

@@ -101,6 +101,7 @@ lima_program_optimize_vs_nir(struct nir_shader *s)
bool progress;
NIR_PASS_V(s, nir_lower_viewport_transform);
NIR_PASS_V(s, nir_lower_point_size, 1.0f, 100.0f);
NIR_PASS_V(s, nir_lower_io, nir_var_all, type_size, 0);
NIR_PASS_V(s, nir_lower_load_const_to_scalar);
NIR_PASS_V(s, lima_nir_lower_uniform_to_scalar);