1. 07 Jan, 2020 1 commit
    • [vulkan] Simplify vk::Semaphore implementation. · 43e33165
      David 'Digit' Turner authored
      This CL simplifies the implementation of vk::Semaphore by getting
      rid of vk::Semaphore::Impl (moving its fields into vk::Semaphore
      itself).
      
      This requires a minor change to the vk::Semaphore constructor which
      now takes an allocator parameter. The latter is used to allocate
      the "External" instance on demand. Before the CL, said instance
      was 'allocated' from a fixed storage area inside the Impl class.
      
      Note that this doesn't change the external semaphore's behaviour.
      In particular, only one implementation can live in the source tree
      at the moment, while the Vulkan specification makes it clear that
      it should be possible to export a single VkSemaphore to several types
      of platform-specific handles (though this doesn't seem to be tested
      by the Vulkan-CTS). This last issue will be addressed in a future CL.
      
      Bug: 140421736
      Change-Id: I3610d9e7e8cb8e49368b658d157408cbd23ee6db
      Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/39052
      Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
      Reviewed-by: 's avatarBen Clayton <bclayton@google.com>
      Tested-by: 's avatarDavid Turner <digit@google.com>
  2. 06 Jan, 2020 12 commits
    • SPIRV-Tools: Update Android.bp to fix build. · 068dd89c
      Ben Clayton authored
      Mirror the rather significant changes in Android.mk from:
      https://github.com/KhronosGroup/SPIRV-Tools/commit/64f36ea5296ec023f65f75d72196d3ff7ae7c7b2?diff=split
      
      Bug: b/123642959
      Change-Id: Iaf82487e768dd0062a97cfe8ebff4e7f85816141
      Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/39876Reviewed-by: 's avatarChris Forbes <chrisforbes@google.com>
      Tested-by: 's avatarBen Clayton <bclayton@google.com>
    • Limit Vulkan memory allocation size to 1 GiB · a57e2eca
      Nicolas Capens authored
      Memory offset calculations in 32-bit SIMD elements limit us to
      addressing at most 4 GiB. Signed arithmetic further restricts it to
      2 GiB.
      
      The legacy OpenGL ES implementation limits image allocations to 1 GiB,
      to discourage excessive memory usage which wouldn't typically succeed
      on other (mobile) implementations anyway. So until we have a strong use
      case which requires more, let's impose the same limit.
      
      Bug: b/146515574
      Change-Id: Iaa7bd22789fd20b4e7975d3d2ffee2a8f90b006a
      Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/39828
      Presubmit-Ready: Nicolas Capens <nicolascapens@google.com>
      Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
      Reviewed-by: 's avatarAlexis Hétu <sugoi@google.com>
      Tested-by: 's avatarNicolas Capens <nicolascapens@google.com>
    • IDs: Move inline impls below class. · 19b43a60
      Ben Clayton authored
      Addresses comments on:
      https://swiftshader-review.googlesource.com/c/SwiftShader/+/38891/1/src/Vulkan/Debug/ID.hpp#34
      
      Bug: b/145351270
      Change-Id: If1aabf0b2d2ac7e992bfd59a19eeeba57cb7f84e
      Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/39248Tested-by: 's avatarBen Clayton <bclayton@google.com>
      Reviewed-by: 's avatarAntonio Maiorano <amaiorano@google.com>
      Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
    • Pipeline: Store builtins on SpirvRoutine... · 5beaef93
      Ben Clayton authored
      ... even if they're not directly used by the SPIR-V shader code.
      This will let the debugger display these values in the locals window.
      
      Bug: b/145351270
      Change-Id: I1d390e95bf38e89b072ef374e6a35cd8222a45c6
      Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/38912Tested-by: 's avatarBen Clayton <bclayton@google.com>
      Presubmit-Ready: Ben Clayton <bclayton@google.com>
      Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
      Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com>
    • Style: clang-format the tests source too · 0b4bc585
      Ben Clayton authored
      Move the `.clang-format` rule up one level from `./src` to `.`.
      Add a `.clang-format` file to `./third_party` that disables formatting.
      Update `./src/clang-format-all.sh` to include `./tests`.
      Format all source files in `./tests`.
      
      Bug: b/144825072
      Change-Id: I01c7ae37a7b1fe8d63ee143107da8acefba20e76
      Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/39873
      Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
      Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com>
      Reviewed-by: 's avatarAntonio Maiorano <amaiorano@google.com>
      Tested-by: 's avatarBen Clayton <bclayton@google.com>
    • Merge changes Id1120acb,Ifc6afcda,I8b5da04a,I9389ad9e,I35d60f68 · 4be96b5f
      Ben Clayton authored
      * changes:
        Update SPIRV-Tools to 8aa423930
        Squashed 'third_party/SPIRV-Tools/' changes from c3f22f7cb..8aa423930
        VulkanUnitTests: Fix SPIR-V validation issue
        Update SPIRV-Headers to 204cd131c
        Squashed 'third_party/SPIRV-Headers/' changes from af64a9e82..204cd131c
    • Improve 1010102 blend precision · 3716c206
      Alexis Hetu authored
      Making sure we extend 1010102 to the full 16 bit range
      fixes 51 of the 53 failures found in ToT dEQP-VK.*a2b10*
      
      Also added a utility function to OR all elements of an
      int vector, which allows us to use more vector operations
      (as opposed to scalar) while improving the readability.
      
      Bug: b/146633956
      Change-Id: If8b946c45cf27f5868d7a97166e21dba565ed72f
      Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/39768Tested-by: 's avatarAlexis Hétu <sugoi@google.com>
      Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com>
    • Update SPIRV-Tools to 8aa423930 · 4fcf9900
      Ben Clayton authored
      Contains initial support for OpenCL.DebugInfo.100 extended instruction set
      
      Changes:
        8aa423930 Avoid pessimizing std::move (#3124)
        fad92f1e7 Fix typo in validation message (#3122)
        578c5ac13 Change default version for CreatInstBindlessCheckPass to 2 (#3119)
        9215c1b7d Fix convert-relax-to-half invalid code (#3099) (#3106)
        64f36ea52 Support OpenCL.DebugInfo.100 extended instruction set (#3080)
        e01bc6d4e spirv-fuzz: Always add new globals to entry point interfaces (#3113)
        dcb7169bb spirv-fuzz: Transformation to add a new function to a module (#3114)
        2e41d5ece spirv-fuzz: Avoid passing access chains as parameters (#3112)
        e70b009b0 Add support for SPV_KHR_non_semantic_info (#3110)
        38d7fbaad spirv-fuzz: Transformations to add types, constants and variables (#3101)
        fccbc00ac Make Instrumentation format version 2 the default (Step 1) (#3096)
        96354f504 spirv-fuzz: Fuzzer pass to merge blocks (#3097)
        5c019b592 Start SPIRV-Tools v2020.1
        c413b982c Finalize SPIRV-Tools v2019.5
        2afbe9051 Update CHANGES
        00ca4e5bd Don't crash when folding construct of empty struct (#3092)
        0a2b38d08 spirv-fuzz: function outlining fuzzer pass (#3078)
        983b5b4fc spirv-fuzz: Use validator to check break/continue dominance conditions (#3089)
        e82a42860 WebGPU: Array size at most max signed int + 1 (#3077)
        0a5d99d02 Permit the debug instructions in WebGPU SPIR-V - remove from the optimizer (#3083)
        af7410597 graphics robust access: use signed clamp (#3073)
        3ed458604 Folding: perform add and sub on mismatched integer types (#3084)
        47f3eb426 spirv-fuzz: Fix invalid tests (#3079)
        b334829a9 Validate nested constructs (#3068)
        52e9cc930 spirv-fuzz: Improve debugging facilities (#3074)
        54385458c Handle unreachable block when computing register pressure (#3070)
        868ca3954 Improve RegisterSizePasses (#3059)
        f31f26f73 utils/vscode: Add install.bat (#3071)
        03957e8a9 build: cmake: Add support for Fuchsia. (#3062)
        a62012ced Add test with explicit example of stripping reflection info (#3064)
        8312c523e Permit the debug instructions in WebGPU SPIR-V (#3063)
        85f3e93d1 Respect CMAKE_INSTALL_LIBDIR in installed CMake files (#3054)
        45dde9ad6 Add missing dealloc (#3061)
        2ee9aaa28 Initialize binary for use as guard later (#3058)
        0391d0823 Handle OpPhi with no in operands in value numbering (#3056)
        ca703c887 Kill the id-to-func map after wrap-opkill (#3055)
        57b4cb40b Convert stderr and stdout in status to strings on assignment (#3049)
      
      Commands:
        git subtree pull --prefix third_party/SPIRV-Tools https://github.com/KhronosGroup/SPIRV-Tools master --squash
      
      Bug: b/123642959
      Change-Id: Id1120acb6126f62c3928774c985fcc09d2619584
    • Squashed 'third_party/SPIRV-Tools/' changes from c3f22f7cb..8aa423930 · 0b54f13d
      Ben Clayton authored
      8aa423930 Avoid pessimizing std::move (#3124)
      fad92f1e7 Fix typo in validation message (#3122)
      578c5ac13 Change default version for CreatInstBindlessCheckPass to 2 (#3119)
      9215c1b7d Fix convert-relax-to-half invalid code (#3099) (#3106)
      64f36ea52 Support OpenCL.DebugInfo.100 extended instruction set (#3080)
      e01bc6d4e spirv-fuzz: Always add new globals to entry point interfaces (#3113)
      dcb7169bb spirv-fuzz: Transformation to add a new function to a module (#3114)
      2e41d5ece spirv-fuzz: Avoid passing access chains as parameters (#3112)
      e70b009b0 Add support for SPV_KHR_non_semantic_info (#3110)
      38d7fbaad spirv-fuzz: Transformations to add types, constants and variables (#3101)
      fccbc00ac Make Instrumentation format version 2 the default (Step 1) (#3096)
      96354f504 spirv-fuzz: Fuzzer pass to merge blocks (#3097)
      5c019b592 Start SPIRV-Tools v2020.1
      c413b982c Finalize SPIRV-Tools v2019.5
      2afbe9051 Update CHANGES
      00ca4e5bd Don't crash when folding construct of empty struct (#3092)
      0a2b38d08 spirv-fuzz: function outlining fuzzer pass (#3078)
      983b5b4fc spirv-fuzz: Use validator to check break/continue dominance conditions (#3089)
      e82a42860 WebGPU: Array size at most max signed int + 1 (#3077)
      0a5d99d02 Permit the debug instructions in WebGPU SPIR-V - remove from the optimizer (#3083)
      af7410597 graphics robust access: use signed clamp (#3073)
      3ed458604 Folding: perform add and sub on mismatched integer types (#3084)
      47f3eb426 spirv-fuzz: Fix invalid tests (#3079)
      b334829a9 Validate nested constructs (#3068)
      52e9cc930 spirv-fuzz: Improve debugging facilities (#3074)
      54385458c Handle unreachable block when computing register pressure (#3070)
      868ca3954 Improve RegisterSizePasses (#3059)
      f31f26f73 utils/vscode: Add install.bat (#3071)
      03957e8a9 build: cmake: Add support for Fuchsia. (#3062)
      a62012ced Add test with explicit example of stripping reflection info (#3064)
      8312c523e Permit the debug instructions in WebGPU SPIR-V (#3063)
      85f3e93d1 Respect CMAKE_INSTALL_LIBDIR in installed CMake files (#3054)
      45dde9ad6 Add missing dealloc (#3061)
      2ee9aaa28 Initialize binary for use as guard later (#3058)
      0391d0823 Handle OpPhi with no in operands in value numbering (#3056)
      ca703c887 Kill the id-to-func map after wrap-opkill (#3055)
      57b4cb40b Convert stderr and stdout in status to strings on assignment (#3049)
      
      git-subtree-dir: third_party/SPIRV-Tools
      git-subtree-split: 8aa423930db37e37086665efcc55944d577c06e5
    • VulkanUnitTests: Fix SPIR-V validation issue · ed2a3387
      Ben Clayton authored
      `LoopDivergentMergePhi` was attempting to use the same merge block for a `OpLoopMerge` and a `OpSelectionMerge`. This is not legal, and was caught by improvements to the SPIR-V tools validator.
      
      The fix is simple: Add a new merge block for the inner `OpSelectionMerge` that immediately jumps to the merge block for the `OpLoopMerge`.
      
      Bug: b/123642959
      Bug: b/133440380
      Bug: b/133481698
      Change-Id: I8b5da04a1cd2db3e44bb5b50f1619a8565e5bc9d
    • Update SPIRV-Headers to 204cd131c · e0081569
      Ben Clayton authored
      Changes:
        204cd131c Merge pull request #134 from Tobski/patch-1
        e0adad52b Off-by-one errors
        6045738ac Reserve a new block of 64 opcodes
      
      Commands:
        git subtree pull --prefix third_party/SPIRV-Headers https://github.com/KhronosGroup/SPIRV-Headers master --squash
      
      Bug: b/123642959
      Change-Id: I9389ad9ea7916464745c2dfedefe46e3ef3a52e4
    • Squashed 'third_party/SPIRV-Headers/' changes from af64a9e82..204cd131c · 2c8ca519
      Ben Clayton authored
      204cd131c Merge pull request #134 from Tobski/patch-1
      e0adad52b Off-by-one errors
      6045738ac Reserve a new block of 64 opcodes
      
      git-subtree-dir: third_party/SPIRV-Headers
      git-subtree-split: 204cd131c42b90d129073719f2766293ce35c081
  3. 30 Dec, 2019 1 commit
  4. 27 Dec, 2019 1 commit
  5. 20 Dec, 2019 4 commits
  6. 19 Dec, 2019 3 commits
  7. 18 Dec, 2019 6 commits
  8. 17 Dec, 2019 12 commits