Commit Graph

20 Commits

Author SHA1 Message Date
Corentin Wallez 0925720ecb Add the Vulkan loader as an optional dependency and use it on Mac
On macOS we can't rely on having the Vulkan loader installed in the
system. So we add the Vulkan loader as an optional dependency of Dawn
and use it on macOS when building Dawn in standalone with Vulkan
support.

Usage of building our own loader might broaden if the loader gains
features that are useful on other OSes. For example the ability to pass
in the "root ICD" entrypoint to the loader so we can have both
Swiftshader and the system driver at the same time.

Bug: dawn:388

Change-Id: I7ade4961cce0463c66846ad17aebf95224f1afcc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/19723
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-04-17 08:22:25 +00:00
Corentin Wallez 955f8a37cc Rolling 2 dependencies
Also adds build_overrides for [vulkan_]use_x11 that are now needed for
these deps.

Roll third_party/vulkan-headers/ d287523f4..e01f13e1f (20 commits)

d287523f48..e01f13e1f7

$ git log d287523f4..e01f13e1f --date=short --no-merges --format='%ad %ae %s'
2020-04-07 oddhack Update for Vulkan-Docs 1.2.137
2020-04-06 devrel Update README.md with warning of pending header changes
2020-03-24 oddhack Update for Vulkan-Docs 1.2.136
2020-03-17 oddhack New include file with provisional extension interfaces (those interfaces not aliased by promoted-from APIs, at least).
2020-03-17 oddhack Update for Vulkan-Docs 1.2.135
2020-03-06 oddhack Update for Vulkan-Docs 1.2.134
2020-02-15 oddhack Update for Vulkan-Docs 1.2.133
2020-01-21 oddhack Update for Vulkan-Docs 1.2.132
2020-01-14 oddhack Update for Vulkan-Docs 1.2.131
2019-11-14 flibitijibibo GN: Make PLATFORM_XCB optional, based on a user-defined variable.
2019-12-09 oddhack Update for Vulkan-Docs 1.1.130
2019-11-25 oddhack Update for Vulkan-Docs 1.1.129
2019-11-21 mark build: Clarify Windows build instructions
2019-11-18 oddhack Update for Vulkan-Docs 1.1.128
2019-11-05 jmadill GN: Add support for Google Games Platform.
2019-10-25 8729214+jonahryandavis build: BUILD.gn missing defines for MacOS
2019-11-03 oddhack Update for Vulkan-Docs 1.1.127
2019-10-28 shannon vulkan: Fix typo for `operator==` in `vulkan.hpp`
2019-10-25 shannon vulkan: Update `vulkan.hpp` for VS2015 VT fix
2019-10-21 oddhack Update for Vulkan-Docs 1.1.126

Roll third_party/vulkan-validation-layers/ 237d818e8..1533266ea (553 commits)

237d818e81..1533266eac

$ git log 237d818e8..1533266ea --date=short --no-merges --format='%ad %ae %s'
2020-04-08 lionel.g.landwerlin Validate blending on color attachment without blending support
2020-03-03 mark scripts: Some validation-stats cleanup and update
2020-04-09 petr_kraus tests: Remove mock workarounds for vkAcquire
2020-04-09 s.fricke layers: Update AHB to Android Q and better logging
2020-04-14 mark test: Temporarily disable AHBCreateImageView test
2020-04-13 jzulauf layers: Add missing WaitSemaphores (KHR/not) entry
2020-04-13 petr_kraus layers: Add missing instance chassis locks
2020-04-06 s.fricke tests: Add support for VUID 02261 and 02262
2020-04-06 s.fricke layers: Add support for VUID 02261 and 02262
2020-04-06 s.fricke layers: Fix general external AHB tracking
2020-04-09 peter.griffin layers: Silence expected GCC warning
2020-04-09 rgarcia layers: Take separate stencil usage flags into account
2020-04-13 mark practices: Fix typo in message output
2020-04-10 mark practices: Avoid VertexInputState checks when using mesh shdrs
2020-04-10 mark tests: Revert "Remove MockICD workarounds in instanceless"
2020-04-10 charles docs: Suggest disabling validation with debug printf
2020-04-09 shannon build: Update known-good files for 1.2.137 header
2020-04-10 mark scripts: Allow clean-repo to work on empty directories
2020-04-10 mark tests: Fix rebasing error in multi-instance test
2020-04-09 mark corechecks: Stringstream can take strings natively
2020-04-09 mark layers: Removed redundant helper function
2020-04-09 mark corechecks: Normalize stringstream message output
2020-04-09 mark layers: Update FormatHandle to use stringstream
2020-04-09 mark corechecks: Fixed bad handle formats in descriptor_sets
2020-04-05 petr_kraus tests: Add multiple instance creation test
2020-04-08 petr_kraus tests: Remove MockICD workarounds in instanceless
2020-04-07 petr_kraus tests: Simplify device extension filtering
2020-04-07 petr_kraus tests: Expect VK_INCOMPLETE from pd enumeration
2020-04-04 petr_kraus tests: Remove commented code and issues
2020-03-31 petr_kraus tests: Add some instance checks
2020-04-02 petr_kraus tests: Refactor the test framework
2020-04-10 lionel.g.landwerlin Add validation for new performance query reset VUID 02863
2020-02-18 lionel.g.landwerlin Rework performance query validation
2020-02-18 lionel.g.landwerlin layers: record reset queries in state tracker
2020-04-10 lionel.g.landwerlin tests: fix incorrect/missing reset of performance queries
2020-04-09 mikes scripts: update_deps.py always pass -A on Windows
2020-04-09 mark scripts: Fix --clean-repo for read-only files
2020-04-07 mark build: Add blurb for using update_deps to change architectures
2020-04-08 s.fricke tests: Add disjoint bindImageMemory VUID
2020-04-08 s.fricke tests: Move tests to BindInvalidMemoryYcbcr
2020-04-08 s.fricke layers: Add disjoint bindImageMemory VUID
2020-04-09 s.fricke Add Documentation about writing tests
2020-04-09 mikes scripts: BP skip vkEnumerateInstanceVersion
2020-04-07 tony layers: Don't remove container contents during iteration
2020-04-07 mikes layers: Fix operator= recursion
2020-04-06 mikes layers: GCC -Wignored-qualifiers warning
2020-04-06 mikes layers: GCC -Wdeprecated-copy warning
2020-04-06 s.fricke tests: Add PhysicalDeviceFormatProperties2 for Device Profile API
2020-04-03 tony tests: Fix extraneous errors
2020-04-03 tony layers: Fix error message
(...)
2019-11-01 camden CMake: Add vklayertests_best_practices.cpp to CMake
2019-11-01 camden layers: Remove DrawCmd perf warning from Buf Val
2019-10-16 camden layers: Add DrawCmd perf warning to Best Practices
2019-11-12 mark tests: Verify reset/use of qpool in different command buffers
2019-11-13 mark corechecks: Enable querystate tracking across multiple submitInfos
2019-11-12 tony tests: Add mechanism to deal with duplicate errors
2019-11-11 mark tests: Add secondary CB VkSubmitInto validation check
2019-11-11 mark corechecks: Add secondary CB VU check
2019-11-11 mark corechecks: Fix propagation of skip in CB state validation
2019-11-12 mark build: Add VUID coverage text file to AppVeyor artifacts
2019-10-28 pdaniell tests: Add tests for VK_KHR_separate_depth_stencil_layouts
2019-10-16 PDANIELL layers: Add support for VK_KHR_separate_depth_stencil_layouts
2019-11-05 shannon build: Update known-good for 1.1.127 header
2019-11-04 jbolz layers: Update ValidateShaderStageInputOutputLimits to new spec rules
2019-11-01 mark cmake: Restore creation of standard validation json file
2019-08-21 jmacnak tests: Add RT shader group tests
2019-08-21 jmacnak layers: Add RT shader group validation
2019-10-30 mikes tests: Add macOS loader filename
2019-10-25 locke tests: Swapchain image layout
2019-10-28 locke layers: Swapchain pluarl bound_images
2019-09-27 tony gpu: Add more positive tests
2019-10-29 mark tests: Remove android limits workaround
2019-10-28 mark tests: Allow hw limits to override baked-in test GL limits
2019-10-28 bob Android: Make tests more reliable
2019-10-25 shannon build: Update known-good commits for SDK 126
2019-10-09 jeremy layers: Fix attachment unused false positive
2019-10-23 mark tests: Exclude GetomInputOutputComps limit test from Android
2019-10-23 mark tests: Fix filter key for shaderc failure messages
2019-10-16 camden layers: best_practices-Fix MemoryFree Exception
2019-10-16 camden layers: Initialize numMemObjects in BP
2019-08-16 jeremy layers: Validate specialization constants
2019-10-11 jeremy build: Update glslang
2019-10-24 mark layers: Removed obsolete layer-specific readme file
2019-10-24 mark docs: Add layer configuration doc, shared with the SDK
2019-10-23 jbolz tests: Add tests for externsync descriptorset updates
2019-10-23 jbolz layers: Relax UPDATE_AFTER_BIND externsync rules in ThreadSafety
2019-10-23 bob tests: Don't filter logcat messages
2019-10-21 shannon build: Update known-good for 1.1.126 header
2019-10-22 jbolz tests: Test CmdTraceRays with no descriptor set bound
2019-10-22 jbolz layers: Add PreCallValidateCmdTraceRaysNV
2019-10-07 locke tests: Catch the error in QueueSubmit
2019-09-30 locke layers: Check in QueueSubmit
2019-09-26 locke layers: Validate DescriptorSet Binding data
2019-10-20 jbolz tests: Add tests for ValidateEventStageMask
2019-10-20 jbolz layers: Move event/query Updates to PostCallRecordQueueSubmit
2019-09-26 jessehall layers: Check exts against required core versions
2019-09-25 jessehall layers: Add VK_KHR_spirv_1_4 validation
2019-10-17 mikes build: Add missing X11 option to GN overrides
2019-10-17 tobine build:Add VK_USE_PLATFORM_XLIB_KHR for x11
2019-10-03 emanuele.dallalonga corechecks: Fix ValidateImageBarrierAttachment resource search

Created with:
  roll-dep third_party/vulkan-headers third_party/vulkan-validation-layers

Bug: dawn:388

Change-Id: I5cefd0511af937897291644acb266f20efec66cc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/19721
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-04-16 17:24:16 +00:00
Corentin Wallez d11cc3961a Split third_party/BUILD.gn in per-project files.
Bug: chromium:1064305

Change-Id: I6fc2da97e20865b62ff34a9d1c3f42120ac90348
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/19202
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-04-10 08:24:00 +00:00
Corentin Wallez 30ec4fc626 Fixes to be able to build Dawn inside Skia
Add a dawn_has_build override similarly to angle_has_build that makes
Dawn not depend on Chromium //build if it can avoid it. (this was
previously used for mac_sdk.gni).

Only load the Vulkan Validation Layers' gni if it is enable via
dawn_enable_vulkan_validation_layers.

Fix a GN build warning where the source of dawn_components would be
built twice: for example libdawn_native.MetalBackend.o would be built
once for libdawn_native static and once for libdawn_native shared. Fix
this by making libdawn_native as a static library libdawn_native_static.

Change-Id: Ib8fb72282435eb475d7a11dae0d5a9977572fd57
Bug: chromium:1064305
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/18963
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
2020-04-07 19:35:47 +00:00
Corentin Wallez ddc5cacc27 GN: Use the hermetic XCode if available.
This matches Chromium's logic and make it less likely to break developer
workflow in the subsequent roll of Chromium's buildtools.

Bug: dawn:339
Change-Id: Ic42553827be125985a3d16b4f5d003b6662ead39
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/16520
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-03-06 12:25:20 +00:00
Austin Eng 2cb76ab598 perf_tests: Manually serialize JSON and remove dependency on jsoncpp
jsoncpp causes some flaky failures because of inconsistencies in nested
DEPS. We barely use it for JSON serialization so the simplest solution
is to just manually write the serialization for perf test tracing data.

Bug: dawn:208
Change-Id: Ie5e4b5436e2c9e32e6817d64c6e95c774cb8751f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14720
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2019-12-20 19:39:10 +00:00
Ryan Harrison 2559fc0b84 Removing for_fuzzers target
Also update shaderc override to be the correct directory

BUG=dawn:285

Change-Id: I021755bbc8f50daa65b6964f3e42d395b51bb94a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14080
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2019-11-27 15:07:53 +00:00
Corentin Wallez 74cebd6879 Allow using swiftshader with the Vulkan backend
This adds swiftshader as a dependency of Dawn, and when it is present
dawn_use_swiftshader=true will force usage of it. (due to a Vulkan
loader limitation we can't have both regular drivers and swiftshader in
the same VkInstance).

BUG=dawn:283

Change-Id: Ib94f4dcca652eb380e994f007cdcfb145b1a5102
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/13440
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2019-11-26 18:21:51 +00:00
Ryan Harrison 80d71ecd12 Remove build rules for spvc support & spirv-cross fuzzers
Disabling this while refactoring how dependencies are set up to avoid
breaking various builds and rolls.

BUG=dawn:285

Change-Id: Iaca2614fb73277a1ea850f90a487693cd4c54fcb
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14040
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2019-11-26 17:42:51 +00:00
Li, Hao 0e1bef3251 Add Vulkan validation layers on Windows
Deploy self-built Vulkan validation layers instead of system installed
one. And it will reuse third_party/angle's Vulkan validation layers if
building with chromium.

Bug: dawn:150
Change-Id: I94e26f7a152fb2a1c39bcb102d60024f4d65eee6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/11120
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2019-11-07 12:13:27 +00:00
Austin Eng 92a011a253 Record and dump trace events in the perf tests
Trace data can be used to build additional metrics which measure
validation costs, GPU time, etc. It will also be helpful to store in
the test output for later analysis.

This CL also adds jsoncpp as a DEP so we can dump trace file json
output.

Bug: dawn:208
Change-Id: Ia6c05ca90aecae308ee6a4fd11e5f43bb03b1dc9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/12080
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2019-10-17 19:00:32 +00:00
Ryan Harrison 16d20837cc Roll ahead to fix and update .gni to unbreak shaderc
Roll third_party/spirv-cross/ 5431e1da2..e5d3a6655 (8 commits)

5431e1da2d..e5d3a6655e

$ git log 5431e1da2..e5d3a6655 --date=short --no-merges --format='%ad %ae %s'
2019-10-07 rharrison Update SPV_VERSION from 1.4 to 1.5
2019-10-07 post Workaround MSVC issue.
2019-10-07 post Do not consider aliased struct types if the master is not a block.
2019-10-07 post Run format_all.sh.
2019-10-04 post Do not value compare JSON files for regression purposes.
2019-10-04 post Reflect: Deal with workgroup size being specialization constants.
2019-10-03 frank.richter reference: Update to include workgroup_size
2019-10-03 frank.richter reflection: Write workgroup_size to JSON for compute shaders

Created with:
  roll-dep third_party/spirv-cross

Roll third_party/shaderc/ e849e6783..621605ce2 (10 commits)

$ git log e849e6783..621605ce2 --date=short --no-merges --format='%ad %ae %s'
2019-10-08 rharrison Fix various build issues for chromium & dawn (#835)
2019-10-08 stevenperron Use a better python idiom (#834)
2019-10-08 stevenperron Fix up use of private spirv-tools headers. (#833)
2019-10-07 rharrison Roll spirv-cross ahead and update known_failures to fix build breakage (#831)
2019-10-07 9856269+sarahM0 spvc: Add an empty opt pass (#816)
2019-10-07 9856269+sarahM0 spvc: Add known_invalid file (#823)
2019-10-04 dneto Add support for targeting SPIR-V 1.5 (#822)
2019-10-03 rharrison Revert "Add spvc compiler to returned result (#821)" (#827)
2019-10-03 rharrison Add spvc compiler to returned result (#821)
2019-10-02 rharrison Rolling 4 dependencies (#817)

Created with:
  roll-dep third_party/shaderc

Change-Id: I9e77d5c78eb647c1f117c356306e6dff7613722a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/11963
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2019-10-09 14:40:10 +00:00
Frank Henigman 8d7de591f4 Tell shaderc where to find SPIRV-Cross.
Set a variable in build_overrides that gives the location of shaderc's
new SPIRV-Cross dependency.  The variable will take a different value
for a chrome build.

BUG=chromium:915096

Change-Id: I92d29cee0bac4a968bffba5c2fd9bb02c040de52
Reviewed-on: https://dawn-review.googlesource.com/c/3301
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
2018-12-14 20:33:50 +00:00
Corentin Wallez 16092faa16 Roll shaderc and glslang and use their BUILD.gn
This rolls glslang and shaderc to be able to use their BUILD.gn files,
and also rolls SPIRV-Tools and spirv-headers to have compatible
versions.

BUG=chromium:870747

Change-Id: I13c615f6f3d148c9b69f06547992bf5910e04e62
Reviewed-on: https://dawn-review.googlesource.com/c/1680
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2018-10-04 17:17:57 +00:00
Corentin Wallez 76664ed8d0 BUILD.gn: Make dawn_standalone default to false
BUG=chromium:870747

Change-Id: I9d80bb8a73227a9a9e5a7c466ac5b40a10fc0106
Reviewed-on: https://dawn-review.googlesource.com/1641
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2018-09-25 21:52:44 +00:00
Corentin Wallez ca81bd3481 GN: Use hermetic builds on Linux
This makes the Linux GN builds use the Chromium copy of binutils and
also makes all platforms use the "custom libcxx" which is libc++.

We do this so that the build doesn't depend on anything from the system
on Linux because our bots are still on trusty with very old libstdc++
and linkers.

Change-Id: I0570fb474f2945c3565e78a56aba66c1a2619afc
2018-09-05 05:18:10 -04:00
Corentin Wallez 3bb0bb940e Generator,BUILD.gn: add optional python path, use it for Jinja2
This makes the Jinja2 (and MarkupSafe) installation hermetic by
adding it to the DEPS and making the code generator add them in the
first spot of the python path.
2018-08-14 21:42:32 +02:00
Corentin Wallez 649e2feda4 Add GN build for tests and their third party deps. 2018-08-09 20:54:43 +02:00
Corentin Wallez 5aea8d15be BUILD.gn: Use idiomatic string substitution 2018-08-06 21:39:17 +02:00
Corentin Wallez 21a23857dc Add initial BUILD.gn files for libdawn[|_native|_wire] 2018-08-06 16:38:33 +02:00