spirv: Lower BaseVertex to FIRST_VERTEX instead of BASE_VERTEX
The base vertex in Vulkan is different from GL in that for non-indexed primitives the value is taken from the firstVertex parameter instead of being set to zero. This coincides with the new SYSTEM_VALUE_FIRST_VERTEX instead of BASE_VERTEX. v2 (idr): Add comment describing why SYSTEM_VALUE_FIRST_VERTEX is used for SpvBuiltInBaseVertex. Suggested by Jason. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> [v1] Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:

committed by
Ian Romanick

parent
c32e1035cb
commit
c4f30a9100
@@ -1296,7 +1296,10 @@ vtn_get_builtin_location(struct vtn_builder *b,
|
||||
set_mode_system_value(b, mode);
|
||||
break;
|
||||
case SpvBuiltInBaseVertex:
|
||||
*location = SYSTEM_VALUE_BASE_VERTEX;
|
||||
/* OpenGL gl_BaseVertex (SYSTEM_VALUE_BASE_VERTEX) is not the same
|
||||
* semantic as SPIR-V BaseVertex (SYSTEM_VALUE_FIRST_VERTEX).
|
||||
*/
|
||||
*location = SYSTEM_VALUE_FIRST_VERTEX;
|
||||
set_mode_system_value(b, mode);
|
||||
break;
|
||||
case SpvBuiltInBaseInstance:
|
||||
|
Reference in New Issue
Block a user