1. 02 Jan, 2018 6 commits
  2. 29 Dec, 2017 4 commits
    • Vulkan: Use one pipeline layout for all Programs. · 8c3988c5
      Jamie Madill authored
      This simplifies the pipeline state object caching. We will not need
      to use any extra bits to cache based on program properties - instead
      all programs will be compatible. The pipeline layout strucutre is
      described in the design docs. It currently only has two bind groups:
      the first for default uniforms, and the second for Textures. In the
      future we might re-organize this to handle driver uniforms, dynamic
      push constants, and/or program uniform buffers with ES 3.0.
      
      Instead of storing only the Textures that are required by a Program,
      we reserve space for the maximum possible Texture units. We might have
      to revisit this very simple design in the future to support texture
      arrays, which are handled specially in Vulkan.
      
      Bug: angleproject:2163
      Change-Id: I3e1656c2c73045aed56838a5f1267b246a623362
      Reviewed-on: https://chromium-review.googlesource.com/837943Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • Don't query names of empty symbols · bed35d76
      Olli Etuaho authored
      This makes it possible to return a reference from TSymbol::name()
      instead of a pointer. This is safer since it completely avoids the
      possibility of a nullptr dereference. An assert is making sure that
      the function is not being called for empty symbols.
      
      BUG=angleproject:2267
      TEST=angle_unittests
      
      Change-Id: I44279f65989dbb828322843fc0216ba84d91dedf
      Reviewed-on: https://chromium-review.googlesource.com/836894Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
    • Vulkan: Implement command re-ordering. · 49ac74bd
      Jamie Madill authored
      This introduces a new CommandBufferNode class. Nodes are linked
      together to form a graph based on their dependencies. When the app
      triggers a readback or swap, the graph is flushed entirely. This
      sends the queued ANGLE Vulkan work to the Vulkan queue which is
      then processed on the GPU with the right dependencies.
      
      This design allows us to save on some unnecessary RenderPass creation
      and also allows us to know what load/store ops to use. It also allows
      us to take advantage of the Vulkan automatic RenderPass transitions
      for performance. Load/Store ops and automatic transitions will be
      implemented in later patches.
      
      Bug: angleproject:2264
      Change-Id: I0e729c719e38254202c6fedcede4e63125eb4810
      Reviewed-on: https://chromium-review.googlesource.com/780849Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarFrank Henigman <fjhenigman@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • Fix tracking variables in folded ternary operators · b8cb939f
      Olli Etuaho authored
      The result of folding a ternary operator may be a TIntermSymbol node
      where the qualifier doesn't match the qualifier of the variable that
      the node is referring to.
      
      Get the qualifier from the variable instead of directly from
      TIntermSymbol when collecting variables in CollectVariables or when
      tracking referenced variables in OutputHLSL.
      
      BUG=angleproject:2288
      TEST=angle_unittests, angle_end2end_tests
      
      Change-Id: If294a7fe9dca50f2ebcea3feff887e72a521d395
      Reviewed-on: https://chromium-review.googlesource.com/836893Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
  3. 28 Dec, 2017 4 commits
  4. 22 Dec, 2017 2 commits
    • Revert "Re-land "Vulkan: Roll loader/validation layers SDK. (2/2)"" · 06f86377
      Zhenyao Mo authored
      This reverts commit 755a9317.
      
      Reason for revert: Broke local win build. crbug.com/797253
      
      Original change's description:
      > Re-land "Vulkan: Roll loader/validation layers SDK. (2/2)"
      > 
      > Re-landing with upstream fixes to the layers so they no longer
      > need to copy the parameter validation errors to the current
      > working directory of the layer generation. Also includes fixes
      > for the GCC build.
      > 
      > This hasn't been updated in a while, so there are many changes.
      > It should also include better validation for memory barriers.
      > 
      > Also includes updated builds for SPIRV Tools and glslang.
      > A few pull requests need to land before landing this in ANGLE.
      > 
      > This second step re-enables Vulkan and includes the updated build.
      > 
      > Includes a workaround for parameter_validation.h no longer being
      > auto-generated, and the stale file clobbering the build.
      > 
      > Also includes a fix for an incorrect memory barrier.
      > 
      > Bug: angleproject:2237
      > Change-Id: I1ed87ecfa84f51ee1edf6a8581d9b3c8f9a6f26e
      > Reviewed-on: https://chromium-review.googlesource.com/834429
      > Commit-Queue: Jamie Madill <jmadill@chromium.org>
      > Reviewed-by: Jamie Madill <jmadill@chromium.org>
      
      TBR=fjhenigman@chromium.org,jmadill@chromium.org
      
      Change-Id: I605d72207d64c7d0853678595e255b74ad69d887
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: angleproject:2237
      Reviewed-on: https://chromium-review.googlesource.com/842918Reviewed-by: 's avatarZhenyao Mo <zmo@chromium.org>
      Commit-Queue: Zhenyao Mo <zmo@chromium.org>
    • Entry Points: Refactor Extensions Part 1. · 2b7bbc28
      Jamie Madill authored
      This moves the validation and entry point files to use a
      consistent syntax. This will facilitate auto-generation.
      
      Bug: angleproject:2263
      Change-Id: Ica2dbffff3898103c6827ae7f6b1154a45d14a85
      Reviewed-on: https://chromium-review.googlesource.com/841345Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
  5. 21 Dec, 2017 7 commits
  6. 20 Dec, 2017 6 commits
  7. 19 Dec, 2017 4 commits
  8. 18 Dec, 2017 3 commits
  9. 15 Dec, 2017 4 commits
    • Revert "Vulkan: Roll loader/validation layers SDK. (2/2)" · 647dca76
      Jamie Madill authored
      This reverts commit f15f9cec.
      
      Reason for revert:
      Causing a compile failure on the Fuchsia config, due to a path
      difference. Will fix upstream and re-land, since it's breaking the
      auto-roller.
      
      https://chromium-review.googlesource.com/c/chromium/src/+/829878
      
      FAILED: clang_x64/gen/third_party/angle/src/vulkan_support/angle/vulkan/parameter_validation.cpp 
      python ../../third_party/vulkan-validation-layers/src/scripts/lvl_genvk.py -o clang_x64/gen/third_party/angle/src/vulkan_support/angle/vulkan -registry ../../third_party/vulkan-validation-layers/src/scripts/vk.xml parameter_validation.cpp -quiet
      Error: Could not find vk_validation_error_messages.h
      [906/1359] ACTION //third_party/angle/src/vulkan_support:vulkan_gen_object_tracker_cpp(//build/toolchain/linux:clang_x64)
      FAILED: clang_x64/gen/third_party/angle/src/vulkan_support/angle/vulkan/object_tracker.cpp 
      python ../../third_party/vulkan-validation-layers/src/scripts/lvl_genvk.py -o clang_x64/gen/third_party/angle/src/vulkan_support/angle/vulkan -registry ../../third_party/vulkan-validation-layers/src/scripts/vk.xml object_tracker.cpp -quiet
      Error: Could not find vk_validation_error_messages.h
      
      Original change's description:
      > Vulkan: Roll loader/validation layers SDK. (2/2)
      > 
      > This hasn't been updated in a while, so there are many changes.
      > It should also include better validation for memory barriers.
      > 
      > Also includes updated builds for SPIRV Tools and glslang.
      > A few pull requests need to land before landing this in ANGLE.
      > 
      > This second step re-enables Vulkan and includes the updated build.
      > 
      > Includes a workaround for parameter_validation.h no longer being
      > auto-generated, and the stale file clobbering the build.
      > 
      > Also includes a fix for an incorrect memory barrier.
      > 
      > Bug: angleproject:2237
      > Change-Id: Iae611764870281ed6aa7b187ec0c4e44226c722a
      > Reviewed-on: https://chromium-review.googlesource.com/759197
      > Commit-Queue: Jamie Madill <jmadill@chromium.org>
      > Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
      
      TBR=fjhenigman@chromium.org,jmadill@chromium.org,cwallez@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: angleproject:2237
      Change-Id: I9bc60860668c1da773b6e2fdb83ecc20215e9125
      Reviewed-on: https://chromium-review.googlesource.com/830926Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • Support ozone/gbm back end in standalone gn build. · 1955640a
      Frank Henigman authored
      This makes it possible to do a standalone gn build of the ozone/gbm back
      end by using the following gn args.
        use_ozone = true
        ozone_platform_gbm = true
      
      BUG=angleproject:1569
      
      Change-Id: I70716b83943dae95df48b847ff8cca5e2c555c4a
      Reviewed-on: https://chromium-review.googlesource.com/749867
      Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
      Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org>
    • Add angle_link_glx arg to standalone gn build. · e42ec189
      Frank Henigman authored
      Port the angle_link_glx setting of the gyp build to the standalone gn build.
      When set to true, libGL will be linked into libANGLE, instead of dlopen-ed.
      This is useful when using apitrace.
      
      BUG=angleproject:1569
      
      Change-Id: I16a91504960169efdcde3b2c50b944de148d9ba6
      Reviewed-on: https://chromium-review.googlesource.com/821691Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
    • Fix Bug in Intel Workaround · 9fc87331
      Brandon Jones authored
      Fixes an incorrect assert that is hit when trying to find a program
      output when none are present. It is valid to not have an output, so we
      should not check for an output when there are none.
      
      Bug:angleproject:2283
      Change-Id: Ia640482870c6ee589a933b989272177760237e3b
      Reviewed-on: https://chromium-review.googlesource.com/825957
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>