nir: Add nir_lower_viewport_transform
On Mali hardware (supported by Panfrost and Lima), the fixed-function transformation from world-space to screen-space coordinates is done in the vertex shader prior to writing out the gl_Position varying, rather than in dedicated hardware. This commit adds a shared NIR pass for implementing coordinate transformation and lowering gl_Position writes into screen-space gl_Position writes. v2: Run directly on derefs before io/vars are lowered to cleanup the code substantially. Thank you to Qiang for this suggestion! v3: Bikeshed continues. v4: Add to Makefile.sources (per Jason's comment). Bikeshed comment. Ian and Qiang's reviews are from v3, but no real functional changes from v4. Rob's review is from v4. Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Suggested-by: Qiang Yu <yuq825@gmail.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Qiang Yu <yuq825@gmail.com> Reviewed-by: Rob Clark <robdclark@gmail.com>
This commit is contained in:
@@ -152,6 +152,7 @@ files_libnir = files(
|
||||
'nir_lower_vars_to_ssa.c',
|
||||
'nir_lower_var_copies.c',
|
||||
'nir_lower_vec_to_movs.c',
|
||||
'nir_lower_viewport_transform.c',
|
||||
'nir_lower_wpos_center.c',
|
||||
'nir_lower_wpos_ytransform.c',
|
||||
'nir_lower_bit_size.c',
|
||||
|
Reference in New Issue
Block a user