1. 20 Jan, 2021 4 commits
  2. 19 Jan, 2021 15 commits
  3. 18 Jan, 2021 13 commits
  4. 17 Jan, 2021 1 commit
    • Reland "Vulkan: Generate gl_Position pre-rotation in SPIR-V" · dfd9bdfd
      Shahbaz Youssefi authored
      This reverts commit 3d39b7c5.
      
      Reason for revert: Fixed interaction with the
      `forceDriverUniformOverSpecConst` workaround.
      
      Original change's description:
      > Revert "Vulkan: Generate gl_Position pre-rotation in SPIR-V"
      >
      > This reverts commit 0f86b196.
      >
      > Reason for revert:
      > Breaks pre-rotation for all apps, so they are displayed in portrait instead of landscape.
      >
      > Original change's description:
      > > Vulkan: Generate gl_Position pre-rotation in SPIR-V
      > >
      > > Instead of having the translator output pre-rotation code in the vertex
      > > stage based on a specialization constant, this change makes the SPIR-V
      > > transformer perform pre-rotation of gl_Position on the last geometry
      > > stage.
      > >
      > > An alternative solution would be to generate pre-rotation code in the
      > > translator in every geometry stage, each controlled by a separate
      > > specialization constant.  This change avoids unnecessary modifications
      > > to earlier stages.  The generated shaders are also smaller, as they
      > > don't contain a mat2[8] pre-rotation constant matrix.  The SPIR-V
      > > transformer knows the pre-rotation at transformation time, so it can
      > > simply use swizzles to achieve the same results.
      > >
      > > This also ties in with upcoming changes which move gl_Position.z
      > > correction to the last geometry shader stage, which is trivially done
      > > piggy-backing on the infrastructure in this change.
      > >
      > > Bug: angleproject:5478
      > > Change-Id: I9d5d9d19f3ccda665f5504368ce5ddfa5f383faf
      > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2598584
      > > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
      > > Reviewed-by: Charlie Lao <cclao@google.com>
      > > Reviewed-by: Jamie Madill <jmadill@chromium.org>
      >
      > TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
      >
      > Change-Id: I81f237fa6b10c7d59831363bee8999e7ad2f09be
      > No-Presubmit: true
      > No-Tree-Checks: true
      > No-Try: true
      > Bug: angleproject:5478
      > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2633694
      > Reviewed-by: Tim Van Patten <timvp@google.com>
      > Commit-Queue: Tim Van Patten <timvp@google.com>
      
      TBR=timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
      
      Bug: angleproject:5478
      Change-Id: I7c5eaeef03d9520abd36a1c4a766b6abbf4fdb45
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2633709Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org>
      Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
  5. 16 Jan, 2021 7 commits
    • Vulkan: Redo RewriteStructSamplers · 60015ff6
      Shahbaz Youssefi authored
      This transformation is split into two.  The first transformation solely
      takes out the samplers out of structs, and potentially generates array
      of array of samplers.  A second transformation is added that takes any
      array of array of opaque uniforms and flattens it.
      
      A follow up change will simplify RewriteAtomicCounters which also
      handles array of arrays (which is no longer possible), and removes
      dependency on shaderStorageBufferArrayDynamicIndexing.
      
      Bug: angleproject:2703
      Bug: angleproject:3881
      Bug: angleproject:4071
      Bug: angleproject:4211
      Change-Id: I352bb2bbe65ac49f4d7d753c0ba3160fa3cc925a
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2628138
      Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
      Reviewed-by: 's avatarTim Van Patten <timvp@google.com>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    • Vulkan: Rename ReplaceClipDistanceVariable files · 9f09435b
      Mohan Maiya authored
      With the addition of EXT_clip_cull_distance extension
      the files are renamed like so -
          ReplaceClipDistanceVariable.h   -> ReplaceClipCullDistanceVariable.h
          ReplaceClipDistanceVariable.cpp -> ReplaceClipCullDistanceVariable.cpp
      
      Bug: angleproject:5458
      Change-Id: I277b2d4b6eea6f2014e10acb251284a159292dbc
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2617572
      Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org>
    • Tests: Add Real Gangster Crime trace · ff170c6f
      Tim Van Patten authored
      Note: Hand edits required to capture this trace:
      
      CaptureMidExecutionSetup():
          // Check for supported textures
          ASSERT(index.getType() == gl::TextureType::_2D ||
                 index.getType() == gl::TextureType::_3D ||
                 index.getType() == gl::TextureType::_2DArray ||
                 index.getType() == gl::TextureType::CubeMap ||
                 index.getType() == gl::TextureType::External);  <<--- add
      
      Test: angle_perftests --gtest_filter=TracePerfTest.Run/*real_gangster_crime*
      Bug: angleproject:5550
      Change-Id: I32391cc8de0b4307334bb873af4f3c5899b584f2
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2626357
      Commit-Queue: Tim Van Patten <timvp@google.com>
      Reviewed-by: 's avatarCody Northrop <cnorthrop@google.com>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    • Revert "Vulkan: Generate gl_Position pre-rotation in SPIR-V" · 3d39b7c5
      Tim Van Patten authored
      This reverts commit 0f86b196.
      
      Reason for revert:
      Breaks pre-rotation for all apps, so they are displayed in portrait instead of landscape.
      
      Original change's description:
      > Vulkan: Generate gl_Position pre-rotation in SPIR-V
      >
      > Instead of having the translator output pre-rotation code in the vertex
      > stage based on a specialization constant, this change makes the SPIR-V
      > transformer perform pre-rotation of gl_Position on the last geometry
      > stage.
      >
      > An alternative solution would be to generate pre-rotation code in the
      > translator in every geometry stage, each controlled by a separate
      > specialization constant.  This change avoids unnecessary modifications
      > to earlier stages.  The generated shaders are also smaller, as they
      > don't contain a mat2[8] pre-rotation constant matrix.  The SPIR-V
      > transformer knows the pre-rotation at transformation time, so it can
      > simply use swizzles to achieve the same results.
      >
      > This also ties in with upcoming changes which move gl_Position.z
      > correction to the last geometry shader stage, which is trivially done
      > piggy-backing on the infrastructure in this change.
      >
      > Bug: angleproject:5478
      > Change-Id: I9d5d9d19f3ccda665f5504368ce5ddfa5f383faf
      > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2598584
      > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
      > Reviewed-by: Charlie Lao <cclao@google.com>
      > Reviewed-by: Jamie Madill <jmadill@chromium.org>
      
      TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
      
      Change-Id: I81f237fa6b10c7d59831363bee8999e7ad2f09be
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: angleproject:5478
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2633694Reviewed-by: 's avatarTim Van Patten <timvp@google.com>
      Commit-Queue: Tim Van Patten <timvp@google.com>
    • Revert "Vulkan: Generate gl_Position.z correction in SPIR-V" · e3c35736
      Tim Van Patten authored
      This reverts commit 1e4f8b02.
      
      Reason for revert:
      Earlier CL breaks pre-rotation:
      https://chromium-review.googlesource.com/c/angle/angle/+/2598584
      
      Original change's description:
      > Vulkan: Generate gl_Position.z correction in SPIR-V
      >
      > Instead of having the translator output code to transform gl_Position.z
      > to Vulkan clip space in the vertex stage, this change makes the SPIR-V
      > transformer perform this operation on the last geometry stage.
      >
      > An alternative solution would be to generate this transformation in the
      > translator in every geometry stage, each controlled by a separate
      > specialization constant.  This change avoids unnecessary modifications
      > to earlier stages.  Additionally, the transformer is already modifying
      > gl_Position.xy for pre-rotation, so the addition of a small
      > transformation of gl_Position.z in the same spot is rather trivial.
      >
      > Bug: angleproject:5479
      > Change-Id: Id971179ba47b206204bfdaf3b2b295ef97dd5117
      > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2598585
      > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
      > Reviewed-by: Charlie Lao <cclao@google.com>
      > Reviewed-by: Jamie Madill <jmadill@chromium.org>
      
      TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
      
      Change-Id: I3bdf3d6f743125eaf552608f2664b715bd6935c5
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: angleproject:5479
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2634203Reviewed-by: 's avatarTim Van Patten <timvp@google.com>
      Commit-Queue: Tim Van Patten <timvp@google.com>
    • Revert "Vulkan: Move xfb position decl to translator in extension path" · b4b59726
      Tim Van Patten authored
      This reverts commit 8f5ca266.
      
      Reason for revert:
      Earlier CL breaks pre-rotation:
      https://chromium-review.googlesource.com/c/angle/angle/+/2598584
      
      Original change's description:
      > Vulkan: Move xfb position decl to translator in extension path
      >
      > This change removes the @@ XFB-DECL @@ marker.  The ANGLEXfbPosition
      > output is unconditionally emitted in VS, TES and GS by the translator,
      > and is appropriately decorated or removed by the SPIR-V transformer.
      >
      > Bug: angleproject:3606
      > Change-Id: Ia76224f5a6d147362eeb2d288f05e333aaf75481
      > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2617658
      > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
      > Reviewed-by: Jamie Madill <jmadill@chromium.org>
      > Reviewed-by: Charlie Lao <cclao@google.com>
      
      TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
      
      Change-Id: Ia03988b9c17639513576e82e8f11cd4c7b52640b
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: angleproject:3606
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2634202Reviewed-by: 's avatarTim Van Patten <timvp@google.com>
      Commit-Queue: Tim Van Patten <timvp@google.com>
    • Revert "Vulkan: Generate xfb support code in SPIR-V for extension path" · d0906276
      Tim Van Patten authored
      This reverts commit d06feeac.
      
      Reason for revert:
      Earlier CL breaks pre-rotation:
      https://chromium-review.googlesource.com/c/angle/angle/+/2598584
      
      Original change's description:
      > Vulkan: Generate xfb support code in SPIR-V for extension path
      >
      > The only piece of code that's needed to be generated for the extension
      > path is the following, at the right spot (right before depth correction
      > and pre-rotation):
      >
      >     ANGLEXfbPosition = gl_Position;
      >
      > The SPIR-V transformer already has gl_Position loaded for depth
      > correction and pre-rotation, so this change simply adds an OpStore to
      > ANGLEXfbPosition.
      >
      > As a result of this change, @@ XFB-OUT @@ is no longer emitted if
      > the transform feedback extension is supported.  With the above code now
      > placed correctly for geometry shaders, transform feedback tests for
      > geometry shaders are enabled.
      >
      > Bug: angleproject:3606
      > Change-Id: I13a7956ab62a1a6b4196ff999442b99b50226c0f
      > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2617659
      > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
      > Reviewed-by: Charlie Lao <cclao@google.com>
      > Reviewed-by: Jamie Madill <jmadill@chromium.org>
      
      TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
      
      Change-Id: I74fa9fafe3c922cdb7cd09ee6351534e38528da9
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: angleproject:3606
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2634048Reviewed-by: 's avatarTim Van Patten <timvp@google.com>
      Commit-Queue: Tim Van Patten <timvp@google.com>