Files
Xenia-Canary/src/xenia/gpu/shaders/tessellation_indexed.vs.hlsl

16 lines
608 B
HLSL

#include "endian.xesli"
#include "xenos_draw.hlsli"
XeHSControlPointInputIndexed main(uint xe_vertex_id : SV_VertexID) {
XeHSControlPointInputIndexed output;
// Only the lower 24 bits of the vertex index are used (tested on an Adreno
// 200 phone). `((index & 0xFFFFFF) + offset) & 0xFFFFFF` is the same as
// `(index + offset) & 0xFFFFFF`.
output.index =
float(clamp((XeEndianSwap32(xe_vertex_id, xe_vertex_index_endian) +
xe_vertex_index_offset) &
0xFFFFFFu,
xe_vertex_index_min_max.x, xe_vertex_index_min_max.y));
return output;
}