You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-04 12:00:25 +00:00
Metal: Read gl_ViewIndex for multi-view subpasses
This is necessary to ensure the SpvCapabilityMultiView is included in the SPIR-V, informing downstream transpilers, like Metal, that it should enable multi-view capabilities in the generated Metal shader source.
This commit is contained in:
@@ -834,6 +834,11 @@ vec3 screen_space_dither(vec2 frag_coord, float bit_alignment_diviser) {
|
|||||||
void main() {
|
void main() {
|
||||||
#ifdef SUBPASS
|
#ifdef SUBPASS
|
||||||
// SUBPASS and USE_MULTIVIEW can be combined but in that case we're already reading from the correct layer
|
// SUBPASS and USE_MULTIVIEW can be combined but in that case we're already reading from the correct layer
|
||||||
|
#ifdef USE_MULTIVIEW
|
||||||
|
// In order to ensure the `SpvCapabilityMultiView` is included in the SPIR-V capabilities, gl_ViewIndex must
|
||||||
|
// be read in the shader. Without this, transpilation to Metal fails to include the multi-view variant.
|
||||||
|
uint vi = ViewIndex;
|
||||||
|
#endif
|
||||||
vec4 color = subpassLoad(input_color);
|
vec4 color = subpassLoad(input_color);
|
||||||
#elif defined(USE_MULTIVIEW)
|
#elif defined(USE_MULTIVIEW)
|
||||||
vec4 color = textureLod(source_color, vec3(uv_interp, ViewIndex), 0.0f);
|
vec4 color = textureLod(source_color, vec3(uv_interp, ViewIndex), 0.0f);
|
||||||
|
|||||||
Reference in New Issue
Block a user