Initial implementation that supports float and vecN types. In this
case, every attribute occupies a single location. When two attributes
alias, they are either the same size, or one is bigger than the other.
Take the following example:
attribute vec3 a; // location 0
attribute vec3 b; // location 0
attribute vec4 c; // location 1
attribute vec2 d; // location 1
The shader may access either a or b (but not both). Similarly, it can
access either c or d (but not both). The shader can be modified such
that:
- f(b) is replaced with f(a).
- g(d) is replaced with g(c.xy).
- b and d are removed
As a result, there are no longer any aliasing attributes. In other
words, when attributes alias, the larger attribute can be retained and
the other attributes can be replaced by selecting the appropriate number
of components from the retained attribute.
Bug: angleproject:4249
Change-Id: I7c5461f777d659c92977e2572091a8ce5e422704
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2482286
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by:
Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by:
Charlie Lao <cclao@google.com>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| gles1 | Loading commit data... | |
| media | Loading commit data... | |
| ActiveTextureCacheTest.cpp | Loading commit data... | |
| AtomicCounterBufferTest.cpp | Loading commit data... | |
| AttributeLayoutTest.cpp | Loading commit data... | |
| BPTCCompressedTextureTest.cpp | Loading commit data... | |
| BindGeneratesResourceTest.cpp | Loading commit data... | |
| BindUniformLocationTest.cpp | Loading commit data... | |
| BlendFuncExtendedTest.cpp | Loading commit data... | |
| BlendIntegerTest.cpp | Loading commit data... | |
| BlendMinMaxTest.cpp | Loading commit data... | |
| BlendPackedTest.cpp | Loading commit data... | |
| BlitFramebufferANGLETest.cpp | Loading commit data... | |
| BufferDataTest.cpp | Loading commit data... | |
| BuiltinVariableTest.cpp | Loading commit data... | |
| ClearTest.cpp | Loading commit data... | |
| ClientArraysTest.cpp | Loading commit data... | |
| ClipDistanceTest.cpp | Loading commit data... | |
| ColorMaskTest.cpp | Loading commit data... | |
| ComputeShaderTest.cpp | Loading commit data... | |
| ContextLostTest.cpp | Loading commit data... | |
| ContextNoErrorTest.cpp | Loading commit data... | |
| CopyCompressedTextureTest.cpp | Loading commit data... | |
| CopyTexImageTest.cpp | Loading commit data... | |
| CopyTexture3DTest.cpp | Loading commit data... | |
| CopyTextureTest.cpp | Loading commit data... | |
| CubeMapTextureTest.cpp | Loading commit data... | |
| D3D11EmulatedIndexedBufferTest.cpp | Loading commit data... | |
| D3D11FormatTablesTest.cpp | Loading commit data... | |
| D3D11InputLayoutCacheTest.cpp | Loading commit data... | |
| D3DImageFormatConversionTest.cpp | Loading commit data... | |
| D3DTextureTest.cpp | Loading commit data... | |
| DXT1CompressedTextureTest.cpp | Loading commit data... | |
| DXTSRGBCompressedTextureTest.cpp | Loading commit data... | |
| DXTSRGBCompressedTextureTestData.inl | Loading commit data... | |
| DebugMarkerTest.cpp | Loading commit data... | |
| DebugTest.cpp | Loading commit data... | |
| DepthStencilFormatsTest.cpp | Loading commit data... | |
| DepthStencilTest.cpp | Loading commit data... | |
| DifferentStencilMasksTest.cpp | Loading commit data... | |
| DiscardFramebufferEXTTest.cpp | Loading commit data... | |
| DrawBaseVertexBaseInstanceTest.cpp | Loading commit data... | |
| DrawBaseVertexVariantsTest.cpp | Loading commit data... | |
| DrawBuffersTest.cpp | Loading commit data... | |
| DrawElementsTest.cpp | Loading commit data... | |
| ETCTextureTest.cpp | Loading commit data... | |
| ErrorMessages.cpp | Loading commit data... | |
| ExplicitContextTest.cpp | Loading commit data... | |
| ExternalWrapTest.cpp | Loading commit data... | |
| FenceSyncTests.cpp | Loading commit data... | |
| FloatingPointSurfaceTest.cpp | Loading commit data... | |
| FormatPrintTest.cpp | Loading commit data... | |
| FramebufferMixedSamplesTest.cpp | Loading commit data... | |
| FramebufferMultiviewTest.cpp | Loading commit data... | |
| FramebufferRenderMipmapTest.cpp | Loading commit data... | |
| FramebufferTest.cpp | Loading commit data... | |
| GLSLTest.cpp | Loading commit data... | |
| GeometryShaderTest.cpp | Loading commit data... | |
| GetImageTest.cpp | Loading commit data... | |
| ImageTest.cpp | Loading commit data... | |
| IncompleteTextureTest.cpp | Loading commit data... | |
| IndexBufferOffsetTest.cpp | Loading commit data... | |
| IndexedPointsTest.cpp | Loading commit data... | |
| InstancingTest.cpp | Loading commit data... | |
| LineLoopTest.cpp | Loading commit data... | |
| LinkAndRelinkTest.cpp | Loading commit data... | |
| MatrixTest.cpp | Loading commit data... | |
| MaxTextureSizeTest.cpp | Loading commit data... | |
| MemoryObjectTest.cpp | Loading commit data... | |
| MemorySizeTest.cpp | Loading commit data... | |
| MipmapTest.cpp | Loading commit data... | |
| MultiDrawTest.cpp | Loading commit data... | |
| MultisampleCompatibilityTest.cpp | Loading commit data... | |
| MultisampleTest.cpp | Loading commit data... | |
| MultisampledRenderToTextureTest.cpp | Loading commit data... | |
| MultithreadingTest.cpp | Loading commit data... | |
| MultiviewDrawTest.cpp | Loading commit data... | |
| ObjectAllocationTest.cpp | Loading commit data... | |
| OcclusionQueriesTest.cpp | Loading commit data... | |
| PBOExtensionTest.cpp | Loading commit data... | |
| PackUnpackTest.cpp | Loading commit data... | |
| ParallelShaderCompileTest.cpp | Loading commit data... | |
| PbufferTest.cpp | Loading commit data... | |
| PixmapTest.cpp | Loading commit data... | |
| PointSpritesTest.cpp | Loading commit data... | |
| ProgramBinaryTest.cpp | Loading commit data... | |
| ProgramInterfaceTest.cpp | Loading commit data... | |
| ProgramParameterTest.cpp | Loading commit data... | |
| ProgramPipelineTest.cpp | Loading commit data... | |
| ProvokingVertexTest.cpp | Loading commit data... | |
| ReadOnlyFeedbackLoopTest.cpp | Loading commit data... | |
| ReadPixelsTest.cpp | Loading commit data... | |
| RenderbufferMultisampleTest.cpp | Loading commit data... | |
| RendererTest.cpp | Loading commit data... | |
| RequestExtensionTest.cpp | Loading commit data... | |
| RobustBufferAccessBehaviorTest.cpp | Loading commit data... | |
| RobustClientMemoryTest.cpp | Loading commit data... | |
| RobustResourceInitTest.cpp | Loading commit data... | |
| S3TCTextureSizesTest.cpp | Loading commit data... | |
| SRGBFramebufferTest.cpp | Loading commit data... | |
| SRGBTextureTest.cpp | Loading commit data... | |
| SamplersTest.cpp | Loading commit data... | |
| SemaphoreTest.cpp | Loading commit data... | |
| ShaderInterpTest.cpp | Loading commit data... | |
| ShaderNonConstGlobalInitializerTest.cpp | Loading commit data... | |
| ShaderStorageBufferTest.cpp | Loading commit data... | |
| SimpleOperationTest.cpp | Loading commit data... | |
| SixteenBppTextureTest.cpp | Loading commit data... | |
| StateChangeTest.cpp | Loading commit data... | |
| SwizzleTest.cpp | Loading commit data... | |
| SyncQueriesTest.cpp | Loading commit data... | |
| TextureExternalUpdateTest.cpp | Loading commit data... | |
| TextureFilteringHintTest.cpp | Loading commit data... | |
| TextureMultisampleTest.cpp | Loading commit data... | |
| TextureRectangleTest.cpp | Loading commit data... | |
| TextureTest.cpp | Loading commit data... | |
| TextureUploadFormatTest.cpp | Loading commit data... | |
| TimerQueriesTest.cpp | Loading commit data... | |
| TransformFeedbackTest.cpp | Loading commit data... | |
| UniformBufferTest.cpp | Loading commit data... | |
| UniformTest.cpp | Loading commit data... | |
| UnpackAlignmentTest.cpp | Loading commit data... | |
| UnpackRowLength.cpp | Loading commit data... | |
| VertexAttributeTest.cpp | Loading commit data... | |
| ViewportTest.cpp | Loading commit data... | |
| VulkanDescriptorSetTest.cpp | Loading commit data... | |
| VulkanExternalImageTest.cpp | Loading commit data... | |
| VulkanFormatTablesTest.cpp | Loading commit data... | |
| VulkanFramebufferTest.cpp | Loading commit data... | |
| VulkanPerformanceCounterTest.cpp | Loading commit data... | |
| VulkanUniformUpdatesTest.cpp | Loading commit data... | |
| WEBGLVideoTextureTest.cpp | Loading commit data... | |
| WebGLCompatibilityTest.cpp | Loading commit data... | |
| WebGLFramebufferTest.cpp | Loading commit data... | |
| WebGLReadOutsideFramebufferTest.cpp | Loading commit data... |