Previously ProgramMtl could try to bind fixed slots to samplers based on layout (set=..., binding=...). However, GLSL layout model is different from Metal slots assignment. For example, The following is valid layout in GLSL: - array samplers A[2] is bound to index 0. - array samplers B[2] is bound to index 1. It is invalid to do so in Metal, since A occupies 2 slots, thus samplers B[2] must be bound to slots starting from 2. New binding method: let spirv-cross auto assigns the texture slots and retrieve them after compilation. Incomplete textures moved to ContextMtl using IncompleteTextureSet. New test added: GLSLTest.ArrayOfStructContainingArrayOfSamplers. Bug: angleproject:2634 Change-Id: Ib0edaaf8b20512e1272c37c1d4b16a88a5b35e75 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2193193 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jonah Ryan-Davis <jonahr@google.com>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| doc | Loading commit data... | |
| shaders | Loading commit data... | |
| BUILD.gn | Loading commit data... | |
| BufferMtl.h | Loading commit data... | |
| BufferMtl.mm | Loading commit data... | |
| CompilerMtl.h | Loading commit data... | |
| CompilerMtl.mm | Loading commit data... | |
| ContextMtl.h | Loading commit data... | |
| ContextMtl.mm | Loading commit data... | |
| DisplayMtl.h | Loading commit data... | |
| DisplayMtl.mm | Loading commit data... | |
| DisplayMtl_api.h | Loading commit data... | |
| FrameBufferMtl.h | Loading commit data... | |
| FrameBufferMtl.mm | Loading commit data... | |
| ProgramMtl.h | Loading commit data... | |
| ProgramMtl.mm | Loading commit data... | |
| RenderBufferMtl.h | Loading commit data... | |
| RenderBufferMtl.mm | Loading commit data... | |
| RenderTargetMtl.h | Loading commit data... | |
| RenderTargetMtl.mm | Loading commit data... | |
| ShaderMtl.h | Loading commit data... | |
| ShaderMtl.mm | Loading commit data... | |
| SurfaceMtl.h | Loading commit data... | |
| SurfaceMtl.mm | Loading commit data... | |
| TextureMtl.h | Loading commit data... | |
| TextureMtl.mm | Loading commit data... | |
| VertexArrayMtl.h | Loading commit data... | |
| VertexArrayMtl.mm | Loading commit data... | |
| gen_mtl_format_table.py | Loading commit data... | |
| mtl_buffer_pool.h | Loading commit data... | |
| mtl_buffer_pool.mm | Loading commit data... | |
| mtl_command_buffer.h | Loading commit data... | |
| mtl_command_buffer.mm | Loading commit data... | |
| mtl_common.h | Loading commit data... | |
| mtl_common.mm | Loading commit data... | |
| mtl_format_map.json | Loading commit data... | |
| mtl_format_table_autogen.mm | Loading commit data... | |
| mtl_format_utils.h | Loading commit data... | |
| mtl_format_utils.mm | Loading commit data... | |
| mtl_glslang_utils.h | Loading commit data... | |
| mtl_glslang_utils.mm | Loading commit data... | |
| mtl_render_utils.h | Loading commit data... | |
| mtl_render_utils.mm | Loading commit data... | |
| mtl_resources.h | Loading commit data... | |
| mtl_resources.mm | Loading commit data... | |
| mtl_state_cache.h | Loading commit data... | |
| mtl_state_cache.mm | Loading commit data... | |
| mtl_utils.h | Loading commit data... | |
| mtl_utils.mm | Loading commit data... |