Commit Graph

34 Commits

Author SHA1 Message Date
Brandon Jones a04663c13d Added Abseil as a third-party dependency (Take 2)
Another attempt at https://dawn-review.googlesource.com/c/dawn/+/63780
Depends on https://skia-review.googlesource.com/c/skia/+/451638

This version of the CL fixes the Cmake and Skia compatibility issues
from the previous CL.

Bug: dawn:563
Change-Id: I41a7ee0aef1924df08a9be41e94effb7cd0025df
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/64600
Commit-Queue: Brandon Jones <bajones@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-09-23 20:36:03 +00:00
Shrek Shao 2f8f2518e5 Revert "Added Abseil as a third-party dependency"
This reverts commit 020d69905e.

Reason for revert: Causing Dawn Skia roll build fails

https://task-scheduler.skia.org/job/AZXXBm9h9ozj3kKiRJM5

Original change's description:
> Added Abseil as a third-party dependency
>
> Using the version in the Chromium repo in order to make use of the .gn
> files it contains.
>
> Doing so also appears to require us to switch where we pull googletest
> from so that the directory structure matches what the Abseil build
> config expects. Fortunately this doesn't seem to cause issues in our
> tests.
>
> Bug: dawn:563
> Change-Id: I55831ad33f282b3d8b03b67826fd2776e5602d89
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/63780
> Reviewed-by: Austin Eng <enga@chromium.org>
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
> Auto-Submit: Brandon Jones <bajones@chromium.org>

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: dawn:563
Change-Id: I0fc4e5fc73ab9b0887591135ec01adde990edd6f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/64361
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Shrek Shao <shrekshao@google.com>
2021-09-15 19:22:19 +00:00
Brandon Jones 020d69905e Added Abseil as a third-party dependency
Using the version in the Chromium repo in order to make use of the .gn
files it contains.

Doing so also appears to require us to switch where we pull googletest
from so that the directory structure matches what the Abseil build
config expects. Fortunately this doesn't seem to cause issues in our
tests.

Bug: dawn:563
Change-Id: I55831ad33f282b3d8b03b67826fd2776e5602d89
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/63780
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Auto-Submit: Brandon Jones <bajones@chromium.org>
2021-09-14 16:56:15 +00:00
Maksim Sisov 08949a3fe7 rename use_x11 to ozone_platform_x11
Ozone is default now in Chromium and non-Ozone/X11 (aka use_x11) is
deprecated. During the transition period use_x11 == ozone_platform_x11.

Bug: c/1096425
Change-Id: Iaec1bd171423936f5a1817fae08a72079faf16fc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/63840
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Maksim Sisov <msisov@igalia.com>
2021-09-10 06:08:41 +00:00
Corentin Wallez 220ff07ffd dawn_native: Add a force_wgsl_step toggle.
This makes SPIRV ingestion always go through a SPIRV->WGSL step first.
This will be used to make sure that path works correctly on existing
WebGPU SPIRV sites so we're confident the SPIRV->WGSL translation will
work when compiled to WASM.

Bug: dawn:960
Change-Id: I17efd8c64d9d60ff033ba89b8fff9295e66524ef
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/56080
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
2021-06-28 10:23:08 +00:00
Corentin Wallez 9e252c0536 Use .gn to set overrides for VulkanMemoryAllocator
Bug: tint:700
Bug: chromium:1195554
Change-Id: I937a1123ff677dfe1c40891d8cbd1c10d9def1e3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46864
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2021-04-06 16:54:19 +00:00
Corentin Wallez e98e857a69 Add build_overrides/vulkan_memory_allocator.gni
After https://chromium-review.googlesource.com/c/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/+/2804453
the VulkanMemoryAllocator dependency will start including this config
file to get the position of the vulkan-headers.

Also factor common vulkan variables to vulkan_common.gni like is done
in Chromium.

Bug: tint:700
Bug: chromium:1195554

Change-Id: Idbb8b957c17b2cbdbd518c13706d02ef4d74e93f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46862
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2021-04-06 12:01:58 +00:00
Corentin Wallez 9037669b2e Remove the dependency on shaderc and glslang.
With all tests converted to WGSL we only use shaderc to assemble SPIRV
assembly to binary. shaderc requires glslang but we don't use it at all.
By using SPIRV-Tools directly to assemble SPIR-V, we can remove both the
shaderc and glslang dependencies.

Bug: dawn:572
Bug: chromium:1150045
Change-Id: I1588428dfb9478e7b724478bec662d002ee920e0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/45765
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-03-24 16:02:13 +00:00
Corentin Wallez 1457ecbcaf Remove obsolete build flag.
No longer necessarry: "linux_use_bundled_binutils_override"

Bug: chromium:1164276
Change-Id: Id5d27b427e91204e71a74da572f3f369630ae54b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/37201
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-01-11 18:27:52 +00:00
Stephen White 77fcdf7eaa Add ANGLE to Dawn build.
Bug: dawn:447, dawn:580
Change-Id: I77726651ca00d64768bddc0bb476fd920e11851f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/35081
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-01-11 15:52:12 +00:00
Stephen White f1fa60b912 Use Jamie's 7-layer burrito of Vulkan DEPS.
This allows us to roll all Vulkan- and SPIRV-related dependencies
simultaneously (which are often inter-dependent).

This change also implicitly rolls the dependencies to the revs in ANGLE.

Change-Id: I50a1e5b2ef706ffbfbc22f5783321820bb50ae96
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/36500
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-01-06 17:41:50 +00:00
Ryan Harrison da5828c06b Add Tint SPIRV->SPIRV to fuzzing code path
Since we are intending to ship using Tint for normalization, fuzzing
should include this transform.

BUG=dawn:531

Change-Id: Ica25c3bbdc6ff392d5e31361734de43fd1c12815
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29180
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2020-09-30 17:50:14 +00:00
Ryan Harrison b44ca92f1c Roll 4 dependencies
Roll third_party/shaderc/ b6c82a149..011139094 (5 commits)

b6c82a149e..011139094e

$ git log b6c82a149..011139094 --date=short --no-merges --format='%ad %ae %s'
2020-09-03 rharrison Adding back non-spvc BUILD.gn that I accidentally nuked ()
2020-09-03 rharrison Remove spvc ()
2020-09-02 rharrison Start SPIRV-Tools v2020.4
2020-09-02 rharrison Finalize SPIRV-Tools v2020.3
2020-09-01 rharrison Roll 3 dependencies and update expectations ()

Created with:
  roll-dep third_party/shaderc

Roll third_party/spirv-cross/ 685f86471..bad9dab8d (4 commits)

685f86471e..bad9dab8df

$ git log 685f86471..bad9dab8d --date=short --no-merges --format='%ad %ae %s'
2020-08-27 cdavis MSL: Support layered input attachments.
2020-09-02 post MSL: Fix OpCompositeInsert and OpVectorInsertDynamic.
2020-08-23 cdavis MSL: Don't set the layer for multiview if the device doesn't support it.
2020-08-07 cdavis MSL: Fix multiview view index calculation with a non-zero base instance.

Created with:
  roll-dep third_party/spirv-cross

Roll third_party/SPIRV-Tools/ 8a0ebd40f..fd05605be (8 commits)

8a0ebd40f8..fd05605bef

$ git log 8a0ebd40f..fd05605be --date=short --no-merges --format='%ad %ae %s'
2020-09-03 stefanomil spirv-fuzz: Transformation to convert OpSelect to conditional branch ()
2020-09-02 46493288+sfricke-samsung spirv-val: Add Vulkan VUID labels to BuiltIn ()
2020-09-02 vasniktel spirv-fuzz: Add support for BuiltIn decoration ()
2020-09-02 stefanomil spirv-fuzz: Fix GetIdEquivalenceClasses ()
2020-09-02 stefanomil spirv-fuzz: Replace id in OpPhi coming from a dead predecessor ()
2020-09-01 stefanomil spirv-fuzz: Transformation to replace the use of an irrelevant id ()
2020-09-01 vasniktel spirv-fuzz: TransformationMutatePointer ()
2020-09-01 stefanomil spirv-fuzz: Compute interprocedural loop nesting depth of blocks ()

Created with:
  roll-dep third_party/SPIRV-Tools

Roll third_party/tint/ 464928ed9..e7ec7f168 (17 commits)

https://dawn.googlesource.com/tint/+log/464928ed913b..e7ec7f16895a

$ git log 464928ed9..e7ec7f168 --date=short --no-merges --format='%ad %ae %s'
2020-09-03 dsinclair [wgsl-writer] Add GenerateEntryPoint
2020-09-03 dsinclair Stub out the method to generate individual entry points.
2020-09-03 dsinclair Add reset method to the generators.
2020-09-03 dsinclair Move generators to unique pointers.
2020-09-02 sarahmashay [validation] Add disabled tests for validating switch statements
2020-09-02 tommek [wgsl-reader] Parsing sampled texture type
2020-09-02 dsinclair [hlsl-writer] Simplify generated logical and/or expressions.
2020-09-02 dsinclair [hlsl-writer] Simplify logical and/or code.
2020-09-02 dsinclair [hlsl-writer] More logical and/or tests.
2020-09-02 dsinclair [hlsl-writer] Emit LogicalAnd and LogicalOr operations
2020-09-02 dsinclair [hlsl-writer] Support pre stream in if/else statements.
2020-09-02 dsinclair [hlsl-writer] Emit pre strings
2020-09-02 dsinclair [hlsl-writer] Update all expressions to take a pre stream.
2020-09-02 tommek [wgsl-reader] Parsing texture sampler types
2020-09-02 dsinclair Fixup doxygen comment
2020-09-02 tommek [wgsl-reader] Parsing depth texture type
2020-09-02 tommek [wgsl-reader] Parsing sampler type

Created with:
  roll-dep third_party/tint

Change-Id: I34e0e77b0f3d1b8050d465fa20e6846ef573c092
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/28140
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2020-09-03 15:36:37 +00:00
Ryan Harrison 4f3811c064 Add Tint to BUILD.gn
Tint is behind a build flag, since Tint is not yet available in
chromium's third_party.

BUG=dawn:403

Change-Id: If5fa36b36216ef6965341b886c3bd70d27daf23a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21300
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2020-05-07 21:15:55 +00:00
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 ()
2019-10-08 stevenperron Use a better python idiom ()
2019-10-08 stevenperron Fix up use of private spirv-tools headers. ()
2019-10-07 rharrison Roll spirv-cross ahead and update known_failures to fix build breakage ()
2019-10-07 9856269+sarahM0 spvc: Add an empty opt pass ()
2019-10-07 9856269+sarahM0 spvc: Add known_invalid file ()
2019-10-04 dneto Add support for targeting SPIR-V 1.5 ()
2019-10-03 rharrison Revert "Add spvc compiler to returned result ()" ()
2019-10-03 rharrison Add spvc compiler to returned result ()
2019-10-02 rharrison Rolling 4 dependencies ()

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