In D3D we pack varyings by making a register map, and using the recommended GLSL ES algorithm to reserve register space. We use this map to assign row and column slots to each varying and then produce a semantic index value. The existing scheme had a number of bugs, and was failing several angle_end2end_tests. The new design cleans up the code somewhat and uses a different counting scheme for the semantic indexes: just sort the varyings in packing order and use a simple incrementing semantic index per varying. In SM4+, the HLSL compiler sorts and packs the varyings correctly itself, and in SM3, handle the cases we don't support by returning an error instead of a D3D compiler link error. Also refactor how we store varying information for TF Feedback/ StreamOut. Only store the necessary D3D information, instead of extra information like the name and type. This fixes several tests in GLSLTest/*. This also will allow us to fix interpolation qualifier packing and the structure packing in HLSL, which seems to work differently than the rest of the varying types. BUG=angleproject:1202 TEST=bots,dEQP-GLES3.functional.transform_feedback.* Change-Id: Ie5bfbb4f71d8bf97f39115fc46d2e61b131df639 Reviewed-on: https://chromium-review.googlesource.com/311241Reviewed-by:Geoff Lang <geofflang@chromium.org> Tested-by:
Jamie Madill <jmadill@chromium.org>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| shaders | Loading commit data... | |
| win32 | Loading commit data... | |
| winrt | Loading commit data... | |
| Blit11.cpp | Loading commit data... | |
| Blit11.h | Loading commit data... | |
| Buffer11.cpp | Loading commit data... | |
| Buffer11.h | Loading commit data... | |
| Clear11.cpp | Loading commit data... | |
| Clear11.h | Loading commit data... | |
| DebugAnnotator11.cpp | Loading commit data... | |
| DebugAnnotator11.h | Loading commit data... | |
| Fence11.cpp | Loading commit data... | |
| Fence11.h | Loading commit data... | |
| Framebuffer11.cpp | Loading commit data... | |
| Framebuffer11.h | Loading commit data... | |
| Image11.cpp | Loading commit data... | |
| Image11.h | Loading commit data... | |
| IndexBuffer11.cpp | Loading commit data... | |
| IndexBuffer11.h | Loading commit data... | |
| InputLayoutCache.cpp | Loading commit data... | |
| InputLayoutCache.h | Loading commit data... | |
| NativeWindow.h | Loading commit data... | |
| PixelTransfer11.cpp | Loading commit data... | |
| PixelTransfer11.h | Loading commit data... | |
| Query11.cpp | Loading commit data... | |
| Query11.h | Loading commit data... | |
| RenderStateCache.cpp | Loading commit data... | |
| RenderStateCache.h | Loading commit data... | |
| RenderTarget11.cpp | Loading commit data... | |
| RenderTarget11.h | Loading commit data... | |
| Renderer11.cpp | Loading commit data... | |
| Renderer11.h | Loading commit data... | |
| ShaderExecutable11.cpp | Loading commit data... | |
| ShaderExecutable11.h | Loading commit data... | |
| SwapChain11.cpp | Loading commit data... | |
| SwapChain11.h | Loading commit data... | |
| TextureStorage11.cpp | Loading commit data... | |
| TextureStorage11.h | Loading commit data... | |
| Trim11.cpp | Loading commit data... | |
| Trim11.h | Loading commit data... | |
| VertexArray11.h | Loading commit data... | |
| VertexBuffer11.cpp | Loading commit data... | |
| VertexBuffer11.h | Loading commit data... | |
| copyvertex.h | Loading commit data... | |
| copyvertex.inl | Loading commit data... | |
| dxgi_support_data.json | Loading commit data... | |
| dxgi_support_table.cpp | Loading commit data... | |
| dxgi_support_table.h | Loading commit data... | |
| formatutils11.cpp | Loading commit data... | |
| formatutils11.h | Loading commit data... | |
| gen_dxgi_support_tables.py | Loading commit data... | |
| gen_load_functions_table.py | Loading commit data... | |
| gen_swizzle_format_table.py | Loading commit data... | |
| gen_texture_format_table.py | Loading commit data... | |
| internal_format_initializer_table.cpp | Loading commit data... | |
| internal_format_initializer_table.h | Loading commit data... | |
| load_functions_data.json | Loading commit data... | |
| load_functions_table.h | Loading commit data... | |
| load_functions_table_autogen.cpp | Loading commit data... | |
| renderer11_utils.cpp | Loading commit data... | |
| renderer11_utils.h | Loading commit data... | |
| swizzle_format_data.json | Loading commit data... | |
| swizzle_format_info.h | Loading commit data... | |
| swizzle_format_info_autogen.cpp | Loading commit data... | |
| texture_format_data.json | Loading commit data... | |
| texture_format_table.cpp | Loading commit data... | |
| texture_format_table.h | Loading commit data... | |
| texture_format_table_autogen.cpp | Loading commit data... | |
| texture_format_util.cpp | Loading commit data... |