This was hitting an ASSERT because D3D12 doesn't have an option
to set None as the shader visibility.
Bug: dawn:448
Change-Id: I3e056e531e7d1bb89da1736bc609bfe97a2fa194
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22324
Reviewed-by: Bryan Bernhart <bryan.bernhart@intel.com>
Commit-Queue: Austin Eng <enga@chromium.org>
This function was validating the depth of the copy which is
incorrect for 2D array textures. Remove this check for now
since it would be only relevant for 3D textures which Dawn
does not support yet.
Bug: dawn:424
Change-Id: I756080a899a7c5effe5843a530d4db0571bc10d5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22323
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
The windows.h macros were undefined only at the end of this platform
header previously but with the addition of d3d12sdklayers.h the
definition of ID3D12DebugQueue::GetMessage picked up the macro and
became GetMessageA or GetMessageW, but Dawn code referred to it as
GetMessage causing a compilation error.
Fix this by preemptively loading windows.h and undefing some of the
macros so that the D3D12 headers don't see them.
Bug:
Change-Id: I1985cc20a9bdec1d25619ac5088e918b2acf8ecb
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22400
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
A previous CL sorted bindings by binding number, but bindings were first
sorted by type. This means a bind group layout with mixed dynamic
storage and uniform buffers would not always have all dynamic bindings
in increasing order. Instead, it would be strictly increasing within
each section of uniform/storage buffers. This CL corrects the issue
by first sorting dynamic buffers by binding number.
Bug: dawn:408
Change-Id: I3689eb64ad8aa8768cebe266eebcba75a21894ce
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22303
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
This will help remove noise in debug layer output. This patch also
promotes warnings and higher to Dawn errors.
BUG: dawn:363, dawn:418, dawn:419, dawn:421
Change-Id: I3112c94aff71fc7e76dff48c82bafe9e051ed3b4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21702
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Bryan Bernhart <bryan.bernhart@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
When device initialization failed, DeviceBase::mCurrentErrorScope is
nullptr so we need to guard the call to UnlinkForShutdown.
Bug: chromium:1081998
Change-Id: I65a1948117fa9461f7fc8d2d1d70aef669bc375d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21685
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
This patch adds the basic supports of read-only and write-only storage
textures on OpenGL backend. Currently on OpenGL backend we only support
using either a layer of a texture or the entire texture as either read-
only or write-only storage texture.
BUG=dawn:267
TEST=dawn_end2end_tests
Change-Id: I235b98d8d961a17739ea35eec9726dcc80889c4b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22180
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
On Intel the lazy-clearing optimization that bundled multiple
subresources at once to lazy-clear failed when multiple different
mip-levels were bundled together. The rendering was "clipped" to the
size of the smalled miplevel, resulting in some mip levels not being
fully cleared.
Bug:
Change-Id: Icfafbeae25bd426119a0b499237052c87eafe93e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22341
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Roll third_party/spirv-cross/ 61cddd630..d385bf096 (4 commits)
61cddd6307..d385bf096f
$ git log 61cddd630..d385bf096 --date=short --no-merges --format='%ad %ae %s'
2020-05-28 bryan.bernhart Prefer set/binding API
2020-05-28 post Document all CLI options.
2020-05-28 post Do not mask writes to remapped variables in all cases.
2020-05-27 bryan.bernhart HLSL: Add option to treat certain SSBO bindings as UAV, even with readonly.
Created with:
roll-dep third_party/spirv-cross
Change-Id: Ibc41180952fed94d3b1089801bd31d087d2e7f41
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22307
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
In the Vulkan backend, we only need to set VK_LAYER_PATH and
VK_ICD_FILENAMES while we're gathering the device information. After
this, we should unset the environment variables or they will persist
and affect loading Vulkan again (from Dawn or another client) in the
future.
Bug: dawn:406
Change-Id: I30c38b0980e181126fcd7fa911bbf9e8aa35f3b8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22021
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
This adds tests that it is possible to render into a subresource bound
as an output attachment. Attaching a subresource as an output attachment
is still not implemented correctly on OpenGL and Metal.
This CL also adds a helper to DawnTest to allow checking stencil buffer
contents.
Bug: dawn:430
Change-Id: Ic8652dd9da8d3c7a47d7b0548306e2054f642e7d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22164
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
This patch adds the supports of copying multiple array layers of a
2D array texture in one texture-to-texture call. Note that in D3D12
and Metal it is implemented by copying each array layer in a for-loop.
Note that we need extra validations when the source and destination
texture are the same one in a texture-to-texture copy. This CL does
not include these validations and we will add them in another one.
BUG=dawn:18
TEST=dawn_unittests, dawn_end2end_tests
Change-Id: I1239543e5692e140474b3c1de0b3579be449e283
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22140
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
This patch adds validations to forbid using cube or cube array texture
views as storage textures in Dawn as they are not supported on D3D12.
BUG=dawn:267
TEST=dawn_unittests
Change-Id: Iafb705a4bedae25ee54cfa45f710b2f3b7aab912
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22166
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>