This patch series optimizes programs that use the pattern:
for (;;) {
glVertexAttribPointer(...)
glDraw(...)
}
Change 2: Micro-optimize XFB resume CPU overhead.
We don't need to set resume on every new command buffer. We only need
to set the dirty bit when we have an unexpected pause.
In total the patch series reduces test iteration time by 25%.
Test: DrawCallPerfBenchmark.Run/vulkan_attrib_change
Bug: angleproject:5045
Bug: b/168493024
Change-Id: I8f6c68ff0513be4f405276e395d80bc1a185a061
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2409174
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by:
Tim Van Patten <timvp@google.com>
Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org>
| 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... |