Commit Graph

2341 Commits

Author SHA1 Message Date
Xinghua Cao bdc05c3d5f Check FP16 support on vulkan backend
This patch check FP16 support on vulkan backend, and introduces
the shader_float16 extension.

BUG=dawn:426
TEST=dawn_end2end_tests

Change-Id: Ie09568a416ce9eb2c11afeede3e7da520550d5fb
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21901
Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-05-27 02:49:08 +00:00
Jiajie Hu 3e332cd475 Set a default value for dawn_glm_dir like other GN build overrides
Bug: dawn:437
Change-Id: Iffdb281df32a506b1cf21823d27ee18710427457
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22102
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jiajie Hu <jiajie.hu@intel.com>
2020-05-27 01:33:33 +00:00
Jiajie Hu 6a029fc9d8 Only download binutils in standalone build
This condition is most useful in non-standalone build AND the higher
level DEPS file recurses into Dawn via recursedeps.

Bug: dawn:437
Change-Id: Ib0aa8366a1a45a80a1dc11b911dbb208455af2fc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22103
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jiajie Hu <jiajie.hu@intel.com>
2020-05-27 01:21:53 +00:00
Yunchao He 0cd6533d1a Implement texture subresource on Vulkan
This change implemented texture subresource on Vulkan. It added a new
function to handle barriers for texture subresource for bind groups.
It also simplified barriers which are set for texture clear and copy.

Before this patch, all barriers are done upon all mip levels and all
array layers. With this patch, barriers are done upon particular mip
level(s) and array layer(s).

We may need more texture subresource end2end tests for copy and clear
opterations. I will visit that later.

Bug: dawn:157

Change-Id: Ie2247c6315326494f2d3736334e84b2867a16c17
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22024
Commit-Queue: Yunchao He <yunchao.he@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-05-27 00:10:33 +00:00
Natasha Lee 04701f9f1e Fire map callback if map async operation fails
Bug: dawn:400
Change-Id: If656239714f2c088e52aff30ef27a20f2fc42ba8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21940
Commit-Queue: Natasha Lee <natlee@microsoft.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-05-26 20:33:03 +00:00
Ryan Harrison 73c9909266 Rolling 9 dependencies
Roll third_party/SPIRV-Tools/ 95df4c964..d3d89bb90 (11 commits)

95df4c9643..d3d89bb90c

$ git log 95df4c964..d3d89bb90 --date=short --no-merges --format='%ad %ae %s'
2020-05-26 andreperezmaselco.developer spirv-fuzz: Support bit width argument for int and float types (#3378)
2020-05-26 andreperezmaselco.developer Fix function use (#3372)
2020-05-25 jaebaek spirv-val: allow DebugInfoNone for DebugTypeComposite.Size (#3374)
2020-05-25 47594367+rg3igalia Add validation support for ImageGatherBiasLodAMD (#3363)
2020-05-21 38433336+AnastasiaStulova Fix validation failure on OpDecorationGroup (#3365)
2020-05-21 greg Remove deprecated interfaces from instrument passes (#3361)
2020-05-21 jaebaek Preserve debug info in inline pass (#3349)
2020-05-21 dnovillo Reject folding comparisons with unfoldable types. (#3370)
2020-05-21 paulthomson Improve build instructions for fuzzer (#3364)
2020-05-20 stevenperron Add unrolling to performance passes (#3082)
2020-05-20 jaebaek Handle OpConstantNull in ssa-rewrite (#3362)

Roll third_party/glslang/ 2e0f0a051..2b0eafb1d (7 commits)

2e0f0a0517..2b0eafb1de

$ git log 2e0f0a051..2b0eafb1d --date=short --no-merges --format='%ad %ae %s'
2020-05-25 alanbaker Update spirv tools (#2246)
2020-05-21 dneto Reorder member init to match decl order (#2241)
2020-05-21 40001162+alelenv Add support for primitive culling layout qualifier. (#2220)
2020-05-21 rharrison Replace incorrect uint32_t with correct int vars (#2235)
2020-05-21 shuizhuyuanluo Do not build glslang-testsuite when ENABLE_CTEST is disabled (#2240)
2020-05-21 mbechard fix incorrect error when multiple compilation units don't declare layouts (#2238)
2020-05-21 shuizhuyuanluo Add an option to make Exceptions enabled (#2239)

Roll third_party/shaderc/ 00ac5d821..7d2f8c57e (1 commit)

$ git log 00ac5d821..7d2f8c57e --date=short --no-merges --format='%ad %ae %s'
2020-05-21 rharrison Rolling 6 dependencies and update expectations (#1073)

Roll third_party/spirv-cross/ 29ad40e93..61cddd630 (4 commits)

29ad40e93e..61cddd6307

$ git log 29ad40e93..61cddd630 --date=short --no-merges --format='%ad %ae %s'
2020-05-25 post Handle physical pointers in reflection API.
2020-05-22 post GLSL: Improve support for GL_ARB_shader_draw_parameters in desktop GLSL.
2020-05-21 dsinclair Roll SPIRV-Tools, SPIRV-Headers and GLSLang.
2020-05-20 dsinclair Roll dependencies

Roll third_party/spirv-headers/ c0df742ec..ac638f181 (1 commit)

c0df742ec0..ac638f1815

$ git log c0df742ec..ac638f181 --date=short --no-merges --format='%ad %ae %s'
2020-05-20 dneto Update example to use unified1 headers

Roll third_party/tint/ 1bbc1cb2c..537039009 (5 commits)

https://dawn.googlesource.com/tint/+log/1bbc1cb2c122..537039009663

$ git log 1bbc1cb2c..537039009 --date=short --no-merges --format='%ad %ae %s'
2020-05-26 dsinclair Remove NOP.
2020-05-21 dj2 Add if with else continue test.
2020-05-21 dj2 [spirv-writer] Fill out cast code.
2020-05-20 dneto [spirv-reader] Support access chain
2020-05-20 dneto [wgsl-writer] Function var decls don't mention storage class

Roll third_party/vulkan-headers/ e01f13e1f..09531f279 (6 commits)

e01f13e1f7..09531f2793

$ git log e01f13e1f..09531f279 --date=short --no-merges --format='%ad %ae %s'
2020-05-15 oddhack Update for Vulkan-Docs 1.2.141
2020-05-04 devrel Remove advanced notice of header change
2020-05-04 oddhack Update for Vulkan-Docs 1.2.140
2020-04-27 oddhack Update for Vulkan-Docs 1.2.139
2020-04-23 mikew Revert "Export versioned targets for CMake"
2019-11-14 rahul Export versioned targets for CMake

Roll third_party/vulkan-loader/ 50eaecd72..006586926 (8 commits)

50eaecd721..006586926a

$ git log 50eaecd72..006586926 --date=short --no-merges --format='%ad %ae %s'
2020-05-25 shannon Build: Update known-good files for 1.2.141 header
2019-10-28 charles loader: add per-application override layer settings
2020-05-12 charles loader: Preload ICD use its own mutex
2020-05-05 shannon build: Fix `loader_genvk.py` error logging
2020-05-04 shannon build: Update known-good for 1.2.140 header
2020-04-28 petr_kraus docs: Fix typo
2020-04-24 lenny loader: Check for null when creating a queue
2020-04-18 petr_kraus docs: Fix link in interface docs

Roll third_party/vulkan-validation-layers/ 7e1fb3d60..31bdb2d43 (168 commits)

7e1fb3d602..31bdb2d437

$ git log 7e1fb3d60..31bdb2d43 --date=short --no-merges --format='%ad %ae %s'
2020-05-24 s.fricke tests: Add FindSupportedDepthStencilFormat check
2020-05-21 s.fricke layers: Fix False Positive AHB BindBuffer
2020-05-21 mark tests: Add tests cases for CreateInstance status messages
2020-05-19 mark tests: Add tests for the layer message filter
2020-05-19 mark tests: Generalize SetEnvVar for use in any test case
2020-05-19 mark layers: Update layer settings file for message filtering
2020-05-19 mark layers: Enable filtering of VUIDs from layer output
2020-05-15 mark chassis: Add processing for msg id filtering
2020-05-15 mark chassis: Output status message at CreateInstance-time
2020-05-21 mark tests: Avoid deprecated ext test false positive
2020-05-15 mark chassis: Switch enables/disables from struct to array
2020-05-22 mark corechecks: Fix typo in SubpassDescription error msg
2020-05-19 tony tests: Re-enable gpu-av ray tracing test
2020-05-20 tony gpu: Fix ray tracing scratch buffer creation
2020-05-20 s.fricke layers: Label 02498 and 02824
2020-05-20 s.fricke tests: Add samplerAnisotropy check
2020-05-21 jeremy tests: Test transform feedback VUIDs
2020-05-21 jeremy layers: Add transform feedback VUIDs
2020-05-18 tony tests: Test for query reset/begin in different cmdbufs
2020-05-18 tony layers: Fix queries false positives
2020-05-15 s.fricke tests: Add VUID 01431
2020-05-15 s.fricke layers: Add VUID 01431
2020-05-16 s.fricke layers: Fix bug for multiple compute pipelines
2020-05-16 s.fricke layers: Add index to pipeline log messages
2020-05-19 s.fricke tests: Add VK_EXT_pipeline_creation_cache_control
2020-05-16 s.fricke layers: Add VK_EXT_pipeline_creation_cache_control
2020-05-19 s.fricke tests: Remove duplicate feature being set
2020-05-16 s.fricke layers: Add VUID 01207
2020-05-16 s.fricke layers: Add VUID 00926
2020-05-15 s.fricke layers: Add VUID 00764
2020-05-14 tony tests: Add test for validation features
2020-05-13 tony layers: Validate validation features
2020-05-15 s.fricke tests: Add AHB MemoryReq VUIDs
2020-05-14 s.fricke layers: Add AHB MemoryReq VUIDs
2020-05-12 mark docs: Update khronos validation layer doc for form and content
2020-05-05 mark tests: Add spec URL tests
2020-05-05 mark cmake: Add spec build option to tests build
2020-05-04 mark cmake: Add layer option to create annotated spec vuid links
2020-05-02 mark logging: Construct either khronos or annotated spec links
2020-05-05 mark scripts: Use apiversion from json file instead of hardcoded
2020-05-01 mark scripts: Update val stats script to generate 1.2 errormsg URLs
2020-05-13 s.fricke layers: Add attachment index to message
2020-05-13 s.fricke layers: Label YCbCr VUIDs
2020-05-14 mark practices: Warn that debug_report is deprecated
2020-05-14 mark tests: Add deprecated extension test cases
2020-05-14 mark practices: Repair deprecated extension version checks
2020-05-13 tony layers: Fix custom border color check
2020-04-15 tony tests: Tests for custom border color
2020-04-15 tony layers: Validation for VK_EXT_custom_border_color
2020-05-12 jan-harald.fredriksen tests: Add VK_EXT_fragment_density_map validation tests
(...)
2020-04-28 s.fricke layers: Add Support for RP Attachment VUIDs
2020-04-29 s.fricke tests: Add support for vkBindImageMemory2 VUID
2020-04-29 s.fricke layers: Add support for vkBindImageMemory2 VUID
2020-04-27 souravp tests: VK_NV_device_diagnostic_checkpoints
2020-04-27 souravp layers: VK_NV_device_diagnostic_checkpoints
2020-04-23 s.fricke tests: Add support for VUID 02634
2020-04-23 s.fricke layers: Add support for VUID 02634
2020-04-25 s.fricke tests: Add VUID 01658 and 01659
2020-04-25 s.fricke layers: Add VUID 01658 and 01659
2020-04-28 tony layers: Fix ValidateClearAttachmentExtent
2020-04-29 mark practices: Fix ValidateReturnCodes parameters
2020-04-25 s.fricke tests: Add VUID 02682 and 02683
2020-04-25 s.fricke layers: Add VUID 02682 and 02683
2020-04-26 s.fricke tests: Fix unexpected errors for AHB test
2020-04-24 mark practices: Fix fcn names and revamp manual fcn handling
2020-04-27 tony gpu: Stop using deprecated spirv-tools var
2020-04-27 jzulauf tests: Add persitant storage for renderpass info
2020-04-27 tony practices: Don't validate swapchain memory
2020-04-09 mikes scripts: Object tracker optional handling
2020-04-23 tony practices: Fix CreateFramebuffer
2020-04-25 petr_kraus tests: Test swapchain image props
2020-04-25 petr_kraus layers: Initialize image props for a swapchain
2020-04-24 karen docs: update khronos_validation_layer.md
2020-04-24 lionel.g.landwerlin Fix validation of blended attachments on imageless framebuffers
2020-04-22 s.fricke tests: Add YCbCr Format Feature VUIDs
2020-04-22 s.fricke layers: Add YCbCr Format Feature VUIDs
2020-04-23 tony gpu: Fix promoted buffer device address
2020-04-21 s.fricke layers: Fix VUID 02023 to use image state format feature
2020-04-19 s.fricke Fix cubearray test from failing on device
2020-04-21 petr_kraus tests: Test concurrent access with vkGetDeviceQueue
2020-04-22 petr_kraus layers: Fix threading resetting counters on vkGet*
2020-04-16 mark scripts: Pick up VUIDS in comment lines
2020-04-16 mark stateless: Add comments to pick up implicit VUs in stats
2020-04-16 mark corechecks: Add comments for built-up VUIDs
2020-04-16 mark corechecks: Remove some comments that'd throw off valstats
2020-04-17 souravp tests: For VUID-VkRayTracingPipelineCreateInfoKHR-flags-03421
2020-04-17 souravp layers: Add VUID-VkRayTracingPipelineCreateInfoKHR-flags-03421
2020-04-18 petr_kraus tests: Remove mock workarounds in instanceless
2020-04-21 sam.walls practices: add null pointer check for PreCallRecordCreateInstance
2020-04-03 tony tests: Split out gpu-av and printf into their own classes
2020-04-19 git layers: add support for VK_EXT_headless_surface
2020-04-20 tony layers: Fix renderpass2 tracking
2020-04-19 s.fricke tests: Add support for VUID 02260
2020-04-19 s.fricke layers: Add support for VUID 02260
2020-04-20 jbolz layers: Fix crash when there are more blend attachments than subpass color attachments
2020-04-16 s.fricke tests: Check coverage without memory requirements
2020-04-16 s.fricke layers: Remove redundant memory checking
2020-04-19 petr_kraus tests: Fix failing TestAliasedMemoryTracking
2020-03-24 jbolz tests: Test cube image view layerCount
2020-03-24 jbolz layers: Validate cube image view layerCount

Created with:
  roll-dep third_party/SPIRV-Tools third_party/glslang third_party/shaderc third_party/spirv-cross third_party/spirv-headers third_party/tint third_party/vulkan-headers third_party/vulkan-loader third_party/vulkan-validation-layers

Change-Id: I84be3d3f03acf0e3037b1da86478e665a12d71cf
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22163
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2020-05-26 20:00:43 +00:00
Brandon Jones e370ec6de4 Allow Attempted Eviction When The Residency LRU Is Empty
Removes an assert when attempting to evict the residency LRU while
empty.

Bug: dawn:415
Change-Id: If346d0f2cc28ec089871b3c5aaf8f5641344f9fe
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22023
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Brandon Jones <brandon1.jones@intel.com>
2020-05-26 19:40:23 +00:00
Jiawei Shao 31c9c6949e Add tests for image2DArray
This patch adds the dawn_end2end_tests on the use of 2D array texture
views as read-only and write-only storage textures.

In HLSL neither RWTextureCube nor RWTextureCubeArray are supported, and
the HLSL function Load() also accept neither TextureCube nor
TextureCubeArray, thus we can neither support imageCube nor
imageCubeArray in the shaders used by Dawn.

BUG=dawn:267
TEST=dawn_end2end_tests

Change-Id: I0bce8bd3bff75baa14943b974ef3a6cc2b6d2434
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21980
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-05-25 00:19:51 +00:00
Austin Eng 65ee6497d6 Fix VulkanImageWrappingUsageTests.ClearImageAcrossDevicesAliased
In Vulkan, importing memory by file descriptor takes ownership of
the file descriptor. It is necessary to dup it in
ClearImageAcrossDevicesAliased because the texture is imported
twice. This fixes these tests on SwiftShader.

Bug: dawn:417
Change-Id: I08b6464c4b8bd31f738037678e29fd6d066e7888
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22020
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2020-05-22 00:23:39 +00:00
Ryan Harrison bd0ad7921d Add support for WGSL shaders via Tint
BUG=dawn:405

Change-Id: I7a79a0d7ce58ff995ec1ff917dd427875fb4deaf
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21340
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2020-05-21 13:42:26 +00:00
Jiawei Shao 214c71769b Disallow using combined textures and samplers in shaders
This patch adds a validation to disallow declaraing combined textures
and samplers in shaders.

SPVC doesn't provide a way to extract the information of combined
textures and samplers from shaders, so currently we cannot add the
related validation when we use SPVC.

BUG=dawn:423
TEST=dawn_unittests

Change-Id: I81f05dc6adb57fbc981ee1a651e160c096315551
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22000
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
2020-05-21 10:38:36 +00:00
Jiawei Shao 8a3cc5c4df Add adapter type in test name when the adapter is Microsoft Basic Render
This patch adds the adapter type in the dawn_end2end_test name when the
adapter is Microsoft Basic Render Driver. In a Windows Remote Desktop
session, there will be two adapters whose name is "Microsoft Basic
Render Driver" with one of the adapter type being "CPU" and another
being "Integrated GPU" on an Intel integrated GPU for example. To avoid
the conflicts in the name of end2end tests and causes ASSERT failures,
we add the adapter type to the test name when the adapter is Microsoft
Basic Render Driver.

BUG=dawn:396
TEST=dawn_end2end_tests

Change-Id: I26108ac106957ea7e72d531a366851fd71cbc2b0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21900
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
2020-05-21 00:24:16 +00:00
Ryan Harrison 13e565a599 Rolling 4 dependencies
Roll third_party/SPIRV-Tools/ c8590c18b..95df4c964 (16 commits)

c8590c18bd..95df4c9643

$ git log c8590c18b..95df4c964 --date=short --no-merges --format='%ad %ae %s'
2020-05-19 rharrison Add in a bunch of missed files to the BUILD.gn (#3360)
2020-05-19 rharrison Remove stale entries from BUILD.gn (#3358)
2020-05-19 vladimir.davidovich allow cross compiling for Windows Store, UWP, etc. (#3330)
2020-05-19 vasniktel spirv-fuzz: Remove FuzzerPassAddUsefulConstructs (#3341)
2020-05-19 vasniktel Add support for StorageBuffer (#3348)
2020-05-19 462213+sl1pkn07 Prevent Effcee install his things when build spirv-tools with testing enabled (#3256)
2020-05-19 stevenperron Don't register edges twice in merge return (#3350)
2020-05-14 stevenperron Revert "Revert "[spirv-opt] refactor inlining pass (#3328)" (#3342)" (#3345)
2020-05-14 afdx spirv-reduce: Remove unused struct members (#3329)
2020-05-14 andreperezmaselco.developer Add adjust branch weights transformation (#3336)
2020-05-13 stevenperron Revert "[spirv-opt] refactor inlining pass (#3328)" (#3342)
2020-05-13 jaebaek [spirv-opt] refactor inlining pass (#3328)
2020-05-13 afdx spirv-reduce: Remove unused uniforms and similar (#3321)
2020-05-13 afdx spirv-fuzz: Fix to fact manager (#3339)
2020-05-13 afdx spirv-fuzz: Get rid of unnecessary template method (#3340)
2020-05-12 stevenperron Do merge return if the return is not at the end of the function. (#3337)

Roll third_party/glslang/ 4fa68edd6..2e0f0a051 (9 commits)

4fa68edd68..2e0f0a0517

$ git log 4fa68edd6..2e0f0a051 --date=short --no-merges --format='%ad %ae %s'
2020-05-20 cepheus Fix #2227, which was coded incorrectly, to be simpler/safer.
2020-05-19 cepheus Build: Fix #2228, by correcting the type used.
2020-05-20 lryer Code refine. (#2227)
2020-05-18 laddoc Add check for DOUBLE in low versions (#2223)
2020-05-18 greg Flatten all interface variables (#2217)
2020-05-18 cepheus Bump version.
2020-05-15 lryer Reserve unused std140 uniform block in reflection, and fix uniform block matrix layout (#2041)
2020-05-15 cepheus Bump version.
2020-05-14 duke.acacia Move to newer version of SPIRV-Tools

Roll third_party/spirv-cross/ d638d2df9..29ad40e93 (4 commits)

d638d2df9c..29ad40e93e

$ git log d638d2df9..29ad40e93 --date=short --no-merges --format='%ad %ae %s'
2020-05-20 post GLSL: Add more test shaders for hit attribute types.
2020-05-20 post GLSL: Support ray payloads and hit attributes declared as Block.
2020-05-20 post GLSL: Add some more focused RT test shaders.
2020-05-19 post HLSL: Implement image queries for UAV images.

Roll third_party/tint/ 0bbf1e746..1bbc1cb2c (6 commits)

https://dawn.googlesource.com/tint/+log/0bbf1e746093..1bbc1cb2c122

$ git log 0bbf1e746..1bbc1cb2c --date=short --no-merges --format='%ad %ae %s'
2020-05-19 dneto [spirv-reader] Support null vector, matrix, arr, struct
2020-05-19 dneto [spirv-reader] Systematic bad construct exit tests
2020-05-19 dneto [spirv-reader] Remove TODO about nested selections
2020-05-19 dneto [spirv-reader] remove redundant disabled test
2020-05-14 dneto [spirv-reader] Unordered float compares
2020-05-14 rharrison Add include path to public config for BUILD.gn

Created with:
  roll-dep third_party/SPIRV-Tools third_party/glslang third_party/shaderc third_party/spirv-cross third_party/spirv-headers third_party/tint

Change-Id: I4f7ff976bdd1527680c9c1f0bc7fdf6cd581ec4c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22022
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2020-05-20 17:40:25 +00:00
Austin Eng 78f7e8640f Skip VulkanImageWrappingTests on SwiftShader
These tests hit a failing ASSERT in SwiftShader.
Suppressing to get the bots running and green.

TBR=cwallez@chromium.org
Bug: dawn:417
Change-Id: I2a2955650df0bb94206534ce1e401299eea6f26a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21960
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2020-05-19 23:20:04 +00:00
Brandon Jones e7b30fdbeb Descriptor Residency 2: Add Management Logic and Test
Adds logic to lock residency for bound descriptor heaps, then unlock and
insert into the LRU cache when no longer bound. Adds a basic functional
test.

Bug: dawn:193
Change-Id: Idfaaee6b873374c07a0b94b1982ad65353218799
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21400
Commit-Queue: Brandon Jones <brandon1.jones@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2020-05-19 21:45:13 +00:00
Austin Eng 7355460100 Skip window and surface tests if glfwInit fails
This skips tests that would fail on SwiftShader on systems with
no display.

Bug: dawn:283
Change-Id: Ie3aa46349df3116305712a5aa143d874cef0d4b4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21781
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2020-05-19 20:51:23 +00:00
Yunchao He 8d6b021a2a Fix a bug for texture subresource
Texture subresource total number is wrongly calculated. This change
fixed the tiny bug.

Bug: dawn:157

Change-Id: Id6dad7e60fa9fe63dac3567814486d3f9dfcee9e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21902
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Yunchao He <yunchao.he@intel.com>
2020-05-19 17:43:03 +00:00
Brandon Jones 9b54466be4 Descriptor Residency 1: Add Pageable and ShaderVisibleDescriptorHeap
Refactors ShaderVisibleDescriptorAllocator to use d3d12::Heap to
represent ID3D12DescriptorHeaps.

Bug: dawn:193
Change-Id: If0a9df0bc138c4d6f1ad110750ab1e6e8084b80f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/20960
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2020-05-19 10:15:12 +00:00
Natasha Lee 949f1e45f1 Refactor MapRequestTracker to be its own class file.
All the buffer backend files had basically the same implemenations
of MapRequestTracker and the tracker was owned by device backends.
This refactor puts MapRequestTracker into its own file
and has the tracker be owned by DeviceBase and BufferBase.

Bug: dawn:400
Change-Id: Id28422b575e9c04d4435d5f119e0ffe08c2d1ce8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21760
Commit-Queue: Natasha Lee <natlee@microsoft.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-05-19 01:29:32 +00:00
Jiawei Shao 2ae84e9461 Disallow the copies within the same buffer
This patch adds the validation that forbids the buffer-to-buffer copies
when the source and destination buffer are the same one as in D3D12 the
Source and Destination resource cannot be the same when doing a
CopyBufferRegion.

BUG=dawn:17, dawn:420
TEST=dawn_unittests

Change-Id: Ie3e0c5361919ff369240a65d6e7fbae05b8332b0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21780
Reviewed-by: Bryan Bernhart <bryan.bernhart@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
2020-05-19 00:11:11 +00:00
Hugo Amiard 216c10d270 D3D12: Implement UseDxc toggle to use DXC for HLSL compilation
Factor out common shader compilation logic to ShaderModuleD3D12
used by both RenderPipeline and ComputePipeline, and implement
a new compilation path using DXC when UseDXC toggle is enabled

Bug: dawn:402

Change-Id: I67d3ae0aecee11634af917735456ddbe10b3d86a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21840
Commit-Queue: Hugo Amiard <hugo.amiard@laposte.net>
Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-05-18 23:56:11 +00:00
Bryan Bernhart e25ee25e77 D3D12: De-duplicate sampler heap allocations.
Allows bindgroups that use the same samplers to share
a descriptor heap allocation. This is particularly important
for sampler heaps which incur expensive pipeline flushes
due to the smaller size requiring more frequent switches.

The device dolls out entries to a sampler heap allocation cache.
When the BindGroup is created, it does a lookup and refs the
allocation. This ensures the cache does not grow unbounded
or needlessly store unused entires.

This change is a follow-up of de-coupling heaps.

BUG=dawn:155

Change-Id: I3ab6f1bdb13a40905cb990cd7a2139e73da30303
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/20783
Commit-Queue: Bryan Bernhart <bryan.bernhart@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2020-05-18 23:25:31 +00:00
nihui 275a95c1dc Fix missing headers with libstdc++ (GCC 10.1)
Bug: None
Change-Id: I772bfbc6639162a51906e4f76685d89c2d34ef5f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21880
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-05-17 20:59:20 +00:00
Yunchao He a5d54d7091 Add end2end tests for texture subresource
The tests can pass on Metal and OpenGL backend as expected.
But they can't pass on D3D12 and Vulkan backend. I will work
on that soon.

Bug: dawn:157

Change-Id: I4fcf229f7a24369004d5594a3801f0acad804fd0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21341
Commit-Queue: Yunchao He <yunchao.he@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2020-05-16 00:34:57 +00:00
Austin Eng 40dc5d3f21 Cleanup: Remove unnecessary TestSetUp overload
Bug: dawn:396
Change-Id: I9d12fb983ea3ef3a01b569caff453a441ab86c70
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21700
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
2020-05-15 22:06:35 +00:00
Austin Eng da722adec9 Run dawn_end2end_tests on all available system adapters
By default, the tests will run on all available adapters, so this
adds an --exclusive-device-type-preference flag which takes a list
of comma-delimited device type preferences (discrete,integrated,cpu).
Tests will run only on the first available device type.
This is useful because in Chromium's test infrastructure, the same
test arguments are passed to one machine on which we want to use the
discrete GPU, as well as one machine where we want to use the
integrated GPU.

Bug: dawn:396
Change-Id: Id936fff3356eef3c6d12dfd1407b0e1f0f020dc1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21202
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
2020-05-15 20:28:05 +00:00
Austin Eng 89beb5fb8c Remove experimental Dawn DEPS CQ bots
These were experimental while we did not have the CTS running on
Dawn's CQ. We can remove them now.

Tbr=cwallez@chromium.org
Bug: dawn:396
Change-Id: I1d459b190e44374e54c47a8bc4ad37a70426847b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21800
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2020-05-15 17:43:02 +00:00
Austin Eng 25c747cf08 DawnTest: Gather adapters on environment creation for filtering backends
This moves the creation of the Instance and Adapter discover to
environment creation. It allows programatically filtering test
parameterizations based on what is available on the system instead of
relying on what is enabled at compile time.

Because of an issue with the Vulkan validation layers, the instance and
adapters are created twice. Once in environment creation, and once on
environment set up. The Vulkan validation layers use static global
mutexes which are unsafe when Chromium's test launcher forks the
launcher process between environment creation and SetUp.

Bug: dawn:396
Change-Id: Id79f0d274331e4ba95f75b2ca4e896ad0f7a31a8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21762
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
2020-05-15 16:07:12 +00:00
Austin Eng 5133221139 DawnTest: Factor Instance creation, Adapter discovery, and config logging
Bug: dawn:396
Change-Id: Idae3f388cf001e97c7fb4c84c50bca6825a2020b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21761
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2020-05-15 16:04:32 +00:00
Jiawei Shao 0b8e319407 Add tests to verify storage textures are initialized before being used
This patch adds dawn_end2end_tests to verify any textures whose first
use is being used as read-only or write-only storage texture have been
cleared to 0.

BUG=dawn:267
TEST=dawn_end2end_tests

Change-Id: I26a1b6b46ba8fc87c6599870771192262ce07d83
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21740
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
2020-05-15 03:24:41 +00:00
Bryan Bernhart 1888ae7857 D3D12: Enable GPU-based validation
Enables GBV by default when the backend validation layers are enabled.
This feature is particularly useful for catching mistakes in shaders
that otherwise pass when only using the debug layer.

BUG=dawn:363

Change-Id: I7b730ce8e43069dc3150e7a5857a0977b3147390
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21701
Commit-Queue: Bryan Bernhart <bryan.bernhart@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2020-05-14 17:38:57 +00:00
Austin Eng 983211974b Reland "Support depth32float sampling on D3D12"
This is a reland of 071fe56ffe

It creates textures as TYPELESS if they may need reinterpretation
of the bit layout. Right now only sampled Depth32Float needs this
so it is special-cased.

Original change's description:
> Support depth32float sampling on D3D12
>
> Bug: dawn:367
> Change-Id: I026e718130cbd92427c6292045fd041c878d4f77
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/20840
> Commit-Queue: Austin Eng <enga@chromium.org>
> Reviewed-by: Stephen White <senorblanco@chromium.org>

Bug: dawn:367
Change-Id: I8b0ad465915c4476099fc1097e0cd02b23bd21b6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21640
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2020-05-14 17:24:36 +00:00
Austin Eng 75ef5963b4 Append the stack trace to the error message
This makes it much easier to understand where errors come from.

Bug: none
Change-Id: I345164177e6258a32bdc37d233bc5df8bba13132
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21660
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2020-05-13 23:10:36 +00:00
Corentin Wallez ecabfe8a78 Remove wgpu::BufferCopyView::rowPitch/imageHeight
They were deprecated in favor of bytesPerRow and rowsPerImage.

Bug: dawn:22
Change-Id: I5bd3262ee8ba2f891d01f6b8a3f5df86f7596686
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21684
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-05-13 17:26:05 +00:00
Corentin Wallez 2eca22f6d7 Remove ShaderModule::code/codeSize
It was deprecated in favor of chaining a
wgpu::ShaderModuleSPIRVDescriptor.

Bug: dawn:22
Change-Id: I210cd7c21c33c6ca8dd286ea64389b774a4355e5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21683
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-05-13 17:23:35 +00:00
Corentin Wallez 437655216e Remove wgpu::Device::CreateQueue
It was deprecated in favor of wgpu::Device::GetDefaultQueue.

Bug: dawn:22
Change-Id: I28d7e616b2beb7de8eed3a3df501eb97a6475928
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21682
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-05-13 17:21:55 +00:00
Corentin Wallez b761fe1346 Remove wgpu::BindGroupLayoutEntry::textureDimension
It was deprecated in favor of viewDimension.

Bug: dawn:22
Change-Id: I8016d7440d98cc69acd1b48cb76f7ae1c1353896
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21681
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-05-13 17:13:35 +00:00
Corentin Wallez 84ae2bfe3b Remove deprecated "Binding" types and members
This removes the following types and members as well as fixup code
and depraction tests for them:

 - wgpu::BindGroupLayoutBinding
 - wgpu::BindGroupLayoutDescriptor::bindingCount
 - wgpu::BindGroupLayoutDescriptor::bindings
 - wgpu::BindGroupBinding
 - wgpu::BindGroupDescriptor::bindingCount
 - wgpu::BindGroupDescriptor::bindings

Bug: dawn:22
Change-Id: Ifc0e25107f3dcfbb850624cb362909f38c90bec2
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21680
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-05-13 17:05:55 +00:00
Felix Maier 20ed6f42b3 D3D12: Add a toggle to use DXC for HLSL compilation
This patch adds the following:
 - UseDXC toggle
 - Loads DXC (and DXIL to sign the DXBC) in d3d12/PlatformFunctions
 - Adds GetModuleDirectory to SystemUtils

GetModuleDirectory was added to prevent loading issues regarding dynamic libraries when the executable is not in the same path as the dawn module.

This patch doesn't add DXC to RenderPipelineD3D12 nor ComputePipelineD3D12.

Bug: dawn:402
Change-Id: I2b8e4a2b7df31b9c766c748f92e11050c0aec3a0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21420
Commit-Queue: Felix Maier <xilefmai@gmail.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2020-05-13 16:57:55 +00:00
Corentin Wallez 60bb88d23c Fix remaining -pedantic warnings.
Wgnu-zero-variadic-macro-arguments is fixed by:

 - A previous googletest roll fixing the warning in gmock.
 - Adding a dummy argument to AddTraceEvent so that the __VA_ARGS__ is
never empty in TraceEvent.h and doesn't require __VA_ARGS__ token
pasting with a comma.
 - Extracting the first parameter in DAWN_INSTANTIATE_TEST with some
preprocessor tricks instead of singling it out, to avoid __VA_ARGS__
token pasting with a comma.

Wmicrosoft-enum-value is fixed by a previous spirv-cross roll that fixes
the warning upstream.

Bug: dawn:394
Change-Id: Icfe037ae9549087e9d62b6f42f91958addbb53ee
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21483
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-05-13 08:01:55 +00:00
Jiawei Shao f4df7916ca Add validation on the buffer-to-buffer copies within same buffer
This patch adds the validation on the buffer-to-buffer copies within the
same buffer. When the source and destination buffer are the same one in
CopyBufferToBuffer(), the copy region cannot overlap or it will cause
undefined behaviors on Metal and Vulkan.

BUG=dawn:17
TEST=dawn_unittests, dawn_end2end_tests

Change-Id: I63ab790787ec0a973ae22787a9348bddfb6a5373
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21602
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
2020-05-13 00:17:15 +00:00
Austin Eng fce44b5fe1 Sort same-type bindings in the BGL by binding number
This fixes a bug where dynamic offsets were applied to the wrong bindings.
Dynamic offsets are applied in increasing order of binding number.

Bug: dawn:408
Change-Id: I3de6ee1bfd6e00239ddc46f820c3f81ba82815cb
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21620
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2020-05-12 20:32:45 +00:00
Corentin Wallez b6eeee0aa3 Vulkan: Fix ResourceHeap leak for direct-allocated resources.
Bug: chromium:1081051
Change-Id: I1f68ebf21033fb9cf925b5cbc3915667b61290fa
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21460
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-05-12 17:44:23 +00:00
Ryan Harrison 4fa5ad4bf0 Rolling 5 dependencies and fix test slow down
Roll third_party/SPIRV-Tools/ 2e1d208ed..c8590c18b (2 commits)

2e1d208ed9..c8590c18bd

$ git log 2e1d208ed..c8590c18b --date=short --no-merges --format='%ad %ae %s'
2020-05-06 jaebaek Preserve debug info for wrap-opkill (#3331)
2020-05-05 jbolz Validate ShaderCallKHR memory scope (#3332)

Roll third_party/glslang/ b5f003d7a..4fa68edd6 (3 commits)

b5f003d7a3..4fa68edd68

$ git log b5f003d7a..4fa68edd6 --date=short --no-merges --format='%ad %ae %s'
2020-05-12 cepheus Address #2211: Improve the copy constructor of TVarLivePair.
2020-05-11 xilefmai Fix Web build
2020-05-08 sebastian.neubauer Explicitly mark some enums as unsigned

Roll third_party/shaderc/ 15a66d72f..00ac5d821 (4 commits)

15a66d72f3..00ac5d8217

$ git log 15a66d72f..00ac5d821 --date=short --no-merges --format='%ad %ae %s'
2020-05-11 rharrison Rolling 4 dependencies (#1062)
2020-05-11 chinmaygarde Only add -fPIC if supported by the compiler. (#1061)
2020-05-06 rharrison Remove Singleton pattern around access to glslang (#1059)
2020-05-05 rharrison Add .NET bindings to README.md (#1060)

Roll third_party/spirv-cross/ 92f7d36c7..d638d2df9 (4 commits)

92f7d36c72..d638d2df9c

$ git log 92f7d36c7..d638d2df9 --date=short --no-merges --format='%ad %ae %s'
2020-05-08 post Support gl_InstanceID in RT shaders.
2020-05-06 post MSL: Avoid packed arrays in more cases.
2020-05-06 post Add missing reference files from PR merge.
2020-05-06 lehoangq Fix #1359: MSL: If the packed type is scalar, don't emit "pack_" prefix.

Roll third_party/tint/ 1f1f08f94..0bbf1e746 (6 commits)

https://dawn.googlesource.com/tint/+log/1f1f08f94a11..0bbf1e746093

$ git log 1f1f08f94..0bbf1e746 --date=short --no-merges --format='%ad %ae %s'
2020-05-11 rharrison Small fix for BUILD.gn
2020-05-08 dneto Rolling 6 dependencies
2020-05-07 dneto [spirv-reader] Find if-selection internal headers
2020-05-07 dneto [spirv-reader] Rename Edge::kToMerge to kIfBreak
2020-05-07 dneto [spirv-reader] Classify kSwitchBreak from deep in control flow
2020-05-07 dsinclair Rename brace and bracket to match spec

Created with:
  roll-dep third_party/SPIRV-Tools third_party/glslang third_party/shaderc third_party/spirv-cross third_party/spirv-headers third_party/tint

Change-Id: I8d9ca3e29b4fa8907147fffacb3905acd48a9c0b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21603
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2020-05-12 17:26:42 +00:00
Austin Eng 02beecaec5 Fuzzer: Wait for all commands to complete before destroying the wire
Bug: chromium:1074739
Change-Id: I32591efe42559299234053f112a2f846d43612ab
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21366
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2020-05-11 20:55:22 +00:00
Austin Eng a1800c04f3 Make fence descriptor optional
Bug: dawn:22
Change-Id: I5d14aa8e12899eb577d7c50081a6ee6f7ec248a0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21365
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2020-05-11 20:29:22 +00:00
Corentin Wallez a6cf7b5b1d Make error scope shutdown iterative instead of recursive.
This avoids a stack overflow when many error scopes are pushed on device
shutdown. It also changes the error scopes to return a Unknown error
type on shutdown instead of NoError.

A regression test is added.

Bug: chromium:1078438
Bug: chromium:1081063
Change-Id: Ibfab8dd19480414c1854ec2bd4928939663ba698
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21440
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-05-11 20:26:12 +00:00
Yunchao He c2542cde3e Fix a bug for multi-writes in ResourceUsageTrackingTests.cpp
It is valid to have race condition for multiple writes on the same
resource in some situations in render pass. These situations are:
1) multple storage buffer bindings on the same buffer,
2) multiple writeonly storage texture bindings on the same texture.

This change fixed a bug in tests and added a new test, in order to
make sure that validation code in Dawn allows this kind race condition.

Bug: dawn:407

Change-Id: I42332418bea5b6e608f6730e42f60c1c12b0b025
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21361
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Yunchao He <yunchao.he@intel.com>
2020-05-11 19:12:12 +00:00
Ryan Harrison 5ffded3956 Revert "Rolling 4 dependencies"
This reverts commit 4084c94c43.

Reason for revert: Performance issue, this is causing tests that took mS to run to now take seconds.

Original change's description:
> Rolling 4 dependencies
> 
> Roll third_party/SPIRV-Tools/ 2e1d208ed..c8590c18b (2 commits)
> 
> 2e1d208ed9..c8590c18bd
> 
> $ git log 2e1d208ed..c8590c18b --date=short --no-merges --format='%ad %ae %s'
> 2020-05-06 jaebaek Preserve debug info for wrap-opkill (#3331)
> 2020-05-05 jbolz Validate ShaderCallKHR memory scope (#3332)
> 
> Roll third_party/shaderc/ 15a66d72f..6b4f6313e (3 commits)
> 
> 15a66d72f3..6b4f6313ed
> 
> $ git log 15a66d72f..6b4f6313e --date=short --no-merges --format='%ad %ae %s'
> 2020-05-11 chinmaygarde Only add -fPIC if supported by the compiler. (#1061)
> 2020-05-06 rharrison Remove Singleton pattern around access to glslang (#1059)
> 2020-05-05 rharrison Add .NET bindings to README.md (#1060)
> 
> Roll third_party/spirv-cross/ 92f7d36c7..d638d2df9 (4 commits)
> 
> 92f7d36c72..d638d2df9c
> 
> $ git log 92f7d36c7..d638d2df9 --date=short --no-merges --format='%ad %ae %s'
> 2020-05-08 post Support gl_InstanceID in RT shaders.
> 2020-05-06 post MSL: Avoid packed arrays in more cases.
> 2020-05-06 post Add missing reference files from PR merge.
> 2020-05-06 lehoangq Fix #1359: MSL: If the packed type is scalar, don't emit "pack_" prefix.
> 
> Roll third_party/tint/ 1f1f08f94..0bbf1e746 (6 commits)
> 
> https://dawn.googlesource.com/tint/+log/1f1f08f94a11..0bbf1e746093
> 
> $ git log 1f1f08f94..0bbf1e746 --date=short --no-merges --format='%ad %ae %s'
> 2020-05-11 rharrison Small fix for BUILD.gn
> 2020-05-08 dneto Rolling 6 dependencies
> 2020-05-07 dneto [spirv-reader] Find if-selection internal headers
> 2020-05-07 dneto [spirv-reader] Rename Edge::kToMerge to kIfBreak
> 2020-05-07 dneto [spirv-reader] Classify kSwitchBreak from deep in control flow
> 2020-05-07 dsinclair Rename brace and bracket to match spec
> 
> Created with:
>   roll-dep third_party/SPIRV-Tools third_party/glslang third_party/shaderc third_party/spirv-cross third_party/spirv-headers third_party/tint
> 
> Change-Id: I7ad5ec308574599138a4297b8b4dd55c215bbf99
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21520
> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
> Commit-Queue: Ryan Harrison <rharrison@chromium.org>

TBR=cwallez@chromium.org,kainino@chromium.org,enga@chromium.org,rharrison@chromium.org

Change-Id: I8c06d2cefdbb6f60b75ee80687d956ebadeee51d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21600
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2020-05-11 19:02:53 +00:00
Corentin Wallez bf009f50c5 Add a test for creating a 0-sized buffer.
This is valid in WebGPU but causes validation errors in backends.

Also make it an OOM error on Metal to request a buffer close to
UINT32_MAX size because it would truncate the size, and could lead to
OOBs.

Bug: chromium:1069076
Change-Id: Ib961cb236cb7cabc0ae21203bf1d72ba82a56272
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21060
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-05-11 18:55:52 +00:00