This bug does not need any work done. The code is correct. Depth
stencil store operations occur in the LATE_FRAGMENT_TESTS_BIT
stage. See crbug.com/dawn/853 for more information.
Fixes: dawn:853
Change-Id: Ib0b7a5af65d09d67d7500ad89dd88c32e13c6d91
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55602
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Auto-Submit: Austin Eng <enga@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
This reverts commit 7fc0c0519a.
Include fix for issues that caused initial revert
BUG=dawn:950
Change-Id: If1d095d19dd771fd7a608bc54f1bd908562d332c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55682
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
This reverts commit 48183b8f58.
Reason for revert: Part of Dawn->Chromium breakage
BUG=dawn:950
Original change's description:
> Vulkan: honor bufferImageGranularity the simplest way.
>
> Vulkan requires that linear and opaque resources be placed in different
> "pages" of bufferImageGranularity size, as some hardware uses the page
> table to contain some compression bits or other stuff. Make Dawn honor
> this limit by aligning all allocations to bufferImageGranularity. This
> is pretty bad and should be improved later.
>
> Also does some cleanups:
> - Add kMappableBufferUsage to represent all mappable usages.
> - Remove the proxy function for resource management from
> vulkan::Device and call ResourceMemoryAllocator directly.
> - Use an enum to make the difference between mappable, linear and
> opaque resources.
>
> This issue was found while doing a change of the memory type selection
> in Vulkan, that started failing some unrelated tests on Nvidia. Without
> knowing the details of the HW or the driver it is really hard to write
> tests, except by copy-pasting a failing test. This is why there is no
> test added in this CL, and instead will rely on tests not failing with
> the follow-up CL.
>
> Bug: dawn:659
>
> Change-Id: Ib7c1f3f1949457e04ca8e23d212dc60af7046213
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52920
> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
> Reviewed-by: Austin Eng <enga@chromium.org>
TBR=cwallez@chromium.org,senorblanco@chromium.org,enga@chromium.org,dawn-scoped@luci-project-accounts.iam.gserviceaccount.com
Change-Id: I133f6a44227819bf262ad2b6e8e9d0d7bfaaefaa
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: dawn:659
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55642
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Previously when comparing a "bestType" that's device-local with a
"current" that's non-device-local, the logic to favor device-local
memory would be skipped and the types compared on their size. This lead
to incorrect memory types selection on some configurations (where the
small device local heap was selected).
Bug: dawn:659
Change-Id: Ie764815082ebeef845b70077fe630df05bcdb92b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/39500
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Vulkan requires that linear and opaque resources be placed in different
"pages" of bufferImageGranularity size, as some hardware uses the page
table to contain some compression bits or other stuff. Make Dawn honor
this limit by aligning all allocations to bufferImageGranularity. This
is pretty bad and should be improved later.
Also does some cleanups:
- Add kMappableBufferUsage to represent all mappable usages.
- Remove the proxy function for resource management from
vulkan::Device and call ResourceMemoryAllocator directly.
- Use an enum to make the difference between mappable, linear and
opaque resources.
This issue was found while doing a change of the memory type selection
in Vulkan, that started failing some unrelated tests on Nvidia. Without
knowing the details of the HW or the driver it is really hard to write
tests, except by copy-pasting a failing test. This is why there is no
test added in this CL, and instead will rely on tests not failing with
the follow-up CL.
Bug: dawn:659
Change-Id: Ib7c1f3f1949457e04ca8e23d212dc60af7046213
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52920
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
After adding some e2e tests for 3D texture T2T copy on non-zero mip
levels, it turns out that there is a bug in the e2e test itself.
The 3D texture copy splitter works well.
Bug: dawn:547
Change-Id: I51aef7aaca4caf9c86bfb0590eb0288d17731ba5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55144
Commit-Queue: Yunchao He <yunchao.he@intel.com>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Tint now matches the behavior of spirv-cross for shaders to use the
arrayLength builtin, and so needs a uniform buffer containing storage
buffer lengths to be passed to shaders that use this builtin.
Fixed: tint:256
Change-Id: Ib51cc4a3c6f7c2cdea867a23ed868d9d3740d734
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55181
Auto-Submit: James Price <jrprice@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
https://chromium.googlesource.com/vulkan-deps/+log/3d799e0e9b08..6cbd7212ad42
$ git log 3d799e0e9..6cbd7212a --date=short --no-merges --format='%ad %ae %s'
2021-06-21 chromium-autoroll Roll Vulkan-Headers from 9d10a96f2d57 to 37164a5726f7 (2 revisions)
2021-06-18 chromium-autoroll Roll SPIRV-Tools from bcef913745e3 to 5dd2f76918bb (1 revision)
2021-06-17 chromium-autoroll Roll Vulkan-ValidationLayers from d1071c19a85c to 16db45029320 (4 revisions)
2021-06-17 chromium-autoroll Roll glslang from e74b35f3f5f8 to b38100f6bc00 (1 revision)
2021-06-17 chromium-autoroll Roll glslang from b9d06bdb0108 to e74b35f3f5f8 (1 revision)
2021-06-17 chromium-autoroll Roll Vulkan-Tools from 1c9e13dea32d to a680671d95bf (2 revisions)
2021-06-17 chromium-autoroll Roll glslang from 71612a7e5d6a to b9d06bdb0108 (1 revision)
2021-06-17 chromium-autoroll Roll Vulkan-ValidationLayers from ae3d0c321731 to d1071c19a85c (1 revision)
2021-06-17 chromium-autoroll Roll Vulkan-Tools from ec76459d6fdf to 1c9e13dea32d (1 revision)
2021-06-17 chromium-autoroll Roll SPIRV-Tools from 4d22f58a812e to bcef913745e3 (1 revision)
2021-06-16 chromium-autoroll Roll Vulkan-ValidationLayers from adb3eb0e78e3 to ae3d0c321731 (1 revision)
2021-06-16 chromium-autoroll Roll glslang from c830b26b5f7a to 71612a7e5d6a (1 revision)
2021-06-16 chromium-autoroll Roll glslang from a23e1436367f to c830b26b5f7a (1 revision)
2021-06-16 chromium-autoroll Roll Vulkan-Tools from 02897e9cb615 to ec76459d6fdf (1 revision)
2021-06-16 chromium-autoroll Roll Vulkan-Tools from f1f5bdbd1b60 to 02897e9cb615 (1 revision)
2021-06-15 chromium-autoroll Roll Vulkan-Tools from 7501ad708eaf to f1f5bdbd1b60 (1 revision)
2021-06-15 chromium-autoroll Roll glslang from b848fd6a9452 to a23e1436367f (1 revision)
2021-06-15 chromium-autoroll Roll Vulkan-ValidationLayers from e82c237574e0 to adb3eb0e78e3 (1 revision)
2021-06-15 chromium-autoroll Roll Vulkan-ValidationLayers from dafb955601bb to e82c237574e0 (2 revisions)
2021-06-15 chromium-autoroll Roll SPIRV-Tools from ecdd9a3e6bd3 to 4d22f58a812e (1 revision)
2021-06-14 chromium-autoroll Roll Vulkan-ValidationLayers from 7397d2636a3d to dafb955601bb (1 revision)
2021-06-14 chromium-autoroll Roll Vulkan-ValidationLayers from d867d21eb247 to 7397d2636a3d (1 revision)
2021-06-14 chromium-autoroll Roll Vulkan-Tools from 0143cbebff88 to 7501ad708eaf (1 revision)
2021-06-14 chromium-autoroll Roll glslang from fe1515867665 to b848fd6a9452 (1 revision)
2021-06-14 chromium-autoroll Roll Vulkan-Tools from ac9393317a5c to 0143cbebff88 (1 revision)
2021-06-14 chromium-autoroll Roll Vulkan-Tools from 53231a96c0a6 to ac9393317a5c (1 revision)
2021-06-14 chromium-autoroll Roll Vulkan-ValidationLayers from b82d4bc69296 to d867d21eb247 (1 revision)
2021-06-14 chromium-autoroll Roll Vulkan-Headers from 07c4a37bcf41 to 9d10a96f2d57 (1 revision)
2021-06-11 chromium-autoroll Roll Vulkan-Tools from bbdf584b4f62 to 53231a96c0a6 (3 revisions)
2021-06-11 chromium-autoroll Roll Vulkan-Tools from 1021540dc2d2 to bbdf584b4f62 (1 revision)
2021-06-10 chromium-autoroll Roll SPIRV-Tools from bbc660edabf9 to ecdd9a3e6bd3 (2 revisions)
2021-06-09 chromium-autoroll Roll SPIRV-Tools from 9dbca316aac1 to bbc660edabf9 (1 revision)
2021-06-09 chromium-autoroll Roll glslang from 3d935ea2243b to fe1515867665 (1 revision)
2021-06-09 chromium-autoroll Roll SPIRV-Tools from c1a75bfabf6e to 9dbca316aac1 (1 revision)
2021-06-09 chromium-autoroll Roll SPIRV-Tools from d07505c761f5 to c1a75bfabf6e (1 revision)
2021-06-08 chromium-autoroll Roll Vulkan-ValidationLayers from cf7757488619 to b82d4bc69296 (4 revisions)
2021-06-08 chromium-autoroll Roll glslang from cb2c7fd674b9 to 3d935ea2243b (1 revision)
2021-06-08 chromium-autoroll Roll SPIRV-Tools from fb02131cb4ac to d07505c761f5 (1 revision)
2021-06-08 chromium-autoroll Roll Vulkan-ValidationLayers from 24f70cac5d64 to cf7757488619 (1 revision)
2021-06-08 chromium-autoroll Roll Vulkan-ValidationLayers from 55a3fc242217 to 24f70cac5d64 (1 revision)
2021-06-08 chromium-autoroll Roll Vulkan-ValidationLayers from 7cc35d372606 to 55a3fc242217 (2 revisions)
2021-06-08 chromium-autoroll Roll Vulkan-ValidationLayers from 8ce298d4d287 to 7cc35d372606 (1 revision)
2021-06-08 chromium-autoroll Roll SPIRV-Tools from 87a28679762f to fb02131cb4ac (1 revision)
2021-06-07 chromium-autoroll Roll Vulkan-ValidationLayers from 159b3cc24003 to 8ce298d4d287 (1 revision)
2021-06-07 chromium-autoroll Roll Vulkan-ValidationLayers from 46de0cdb7445 to 159b3cc24003 (12 revisions)
2021-06-07 chromium-autoroll Roll Vulkan-Tools from a8e96342e57d to 1021540dc2d2 (1 revision)
2021-06-07 chromium-autoroll Roll glslang from 1fa21491bc20 to cb2c7fd674b9 (1 revision)
2021-06-07 chromium-autoroll Roll Vulkan-Tools from 3ae088978f21 to a8e96342e57d (1 revision)
2021-06-07 chromium-autoroll Roll Vulkan-ValidationLayers from 5573a8ccfc9d to 46de0cdb7445 (1 revision)
2021-06-07 chromium-autoroll Roll SPIRV-Tools from c05f74415425 to 87a28679762f (1 revision)
(...)
2021-06-01 chromium-autoroll Roll Vulkan-ValidationLayers from 5d97074c3a01 to faea0bb06837 (2 revisions)
2021-06-01 chromium-autoroll Roll Vulkan-ValidationLayers from 5919c92a5bf2 to 5d97074c3a01 (1 revision)
2021-06-01 chromium-autoroll Roll Vulkan-ValidationLayers from 1dfbd1790542 to 5919c92a5bf2 (1 revision)
2021-06-01 chromium-autoroll Roll SPIRV-Tools from 0861a8fa21bd to 8b3dc6bbed46 (1 revision)
2021-06-01 chromium-autoroll Roll SPIRV-Tools from 9646c733e91d to 0861a8fa21bd (1 revision)
2021-06-01 chromium-autoroll Roll SPIRV-Tools from ec1bc3e2e567 to 9646c733e91d (1 revision)
2021-05-31 chromium-autoroll Roll Vulkan-ValidationLayers from 94787b19f5f1 to 1dfbd1790542 (1 revision)
2021-05-31 chromium-autoroll Roll Vulkan-ValidationLayers from 7176ec2ec8b6 to 94787b19f5f1 (2 revisions)
2021-05-31 chromium-autoroll Roll Vulkan-Tools from daa3490ea48a to 6149e30699b3 (1 revision)
2021-05-31 chromium-autoroll Roll Vulkan-ValidationLayers from 4ce9838c233c to 7176ec2ec8b6 (1 revision)
2021-05-28 chromium-autoroll Roll Vulkan-ValidationLayers from 299187b140d1 to 4ce9838c233c (1 revision)
2021-05-28 chromium-autoroll Roll Vulkan-Tools from 4e4619ae690a to daa3490ea48a (1 revision)
2021-05-28 chromium-autoroll Roll Vulkan-ValidationLayers from 93883725f2d9 to 299187b140d1 (1 revision)
2021-05-28 chromium-autoroll Roll Vulkan-ValidationLayers from 3a5976ccf876 to 93883725f2d9 (2 revisions)
2021-05-28 chromium-autoroll Roll Vulkan-ValidationLayers from 8a22bcf6bf74 to 3a5976ccf876 (2 revisions)
2021-05-27 chromium-autoroll Roll glslang from 6fe560f74f47 to 6bdcb4be344d (1 revision)
2021-05-27 chromium-autoroll Roll SPIRV-Cross from ff61890722a9 to a6ce49ca2420 (1 revision)
2021-05-27 chromium-autoroll Roll SPIRV-Tools from 94f570d7aa88 to ec1bc3e2e567 (1 revision)
2021-05-26 chromium-autoroll Roll SPIRV-Tools from 00ce2bb474e8 to 94f570d7aa88 (1 revision)
2021-05-26 chromium-autoroll Roll Vulkan-ValidationLayers from 67b22bff6c6f to 8a22bcf6bf74 (3 revisions)
2021-05-26 chromium-autoroll Roll Vulkan-ValidationLayers from 527470176179 to 67b22bff6c6f (1 revision)
2021-05-25 chromium-autoroll Roll SPIRV-Tools from e2ac64bdf003 to 00ce2bb474e8 (1 revision)
2021-05-25 chromium-autoroll Roll SPIRV-Tools from 91931ffcd22a to e2ac64bdf003 (1 revision)
2021-05-24 chromium-autoroll Roll Vulkan-ValidationLayers from b0d5e59282a3 to 527470176179 (1 revision)
2021-05-24 chromium-autoroll Roll Vulkan-Tools from 72c2d5f0b0e5 to 4e4619ae690a (1 revision)
2021-05-24 chromium-autoroll Roll Vulkan-Loader from a132dee142c0 to 3bdb32d29f2d (1 revision)
2021-05-24 chromium-autoroll Roll Vulkan-ValidationLayers from c7cd7dd80597 to b0d5e59282a3 (1 revision)
2021-05-24 chromium-autoroll Roll Vulkan-ValidationLayers from 00cc43d56498 to c7cd7dd80597 (1 revision)
2021-05-24 chromium-autoroll Roll SPIRV-Tools from 0afe1f2b3fa2 to 91931ffcd22a (1 revision)
2021-05-24 chromium-autoroll Roll Vulkan-Headers from 9af411e83fb0 to 7fe877c90abf (1 revision)
2021-05-22 chromium-autoroll Roll SPIRV-Tools from f0d110e3058b to 0afe1f2b3fa2 (1 revision)
2021-05-21 chromium-autoroll Roll Vulkan-ValidationLayers from 9326420ac7ef to 00cc43d56498 (1 revision)
2021-05-21 chromium-autoroll Roll SPIRV-Cross from faec1a8643d2 to ff61890722a9 (1 revision)
2021-05-21 chromium-autoroll Roll Vulkan-ValidationLayers from bcc40ac73917 to 9326420ac7ef (1 revision)
2021-05-21 chromium-autoroll Roll SPIRV-Cross from 9ea0e8b859da to faec1a8643d2 (1 revision)
2021-05-21 chromium-autoroll Roll SPIRV-Cross from a6c951485604 to 9ea0e8b859da (1 revision)
2021-05-21 chromium-autoroll Roll SPIRV-Cross from 0214990e7caa to a6c951485604 (1 revision)
2021-05-21 chromium-autoroll Roll SPIRV-Cross from 418542eaefdb to 0214990e7caa (1 revision)
2021-05-21 chromium-autoroll Roll Vulkan-ValidationLayers from c8b831c8282e to bcc40ac73917 (1 revision)
2021-05-20 chromium-autoroll Roll glslang from e71278cc927f to 6fe560f74f47 (1 revision)
2021-05-20 chromium-autoroll Roll Vulkan-ValidationLayers from cf0476d422aa to c8b831c8282e (24 revisions)
2021-05-20 chromium-autoroll Roll Vulkan-ValidationLayers from 9c5f59d1777c to cf0476d422aa (2 revisions)
2021-05-19 chromium-autoroll Roll Vulkan-ValidationLayers from 27cda2ec97d6 to 9c5f59d1777c (8 revisions)
2021-05-19 chromium-autoroll Roll Vulkan-Tools from f89f72e10562 to 72c2d5f0b0e5 (4 revisions)
2021-05-19 chromium-autoroll Roll Vulkan-ValidationLayers from 0bbc61128c85 to 27cda2ec97d6 (1 revision)
2021-05-19 chromium-autoroll Roll Vulkan-ValidationLayers from 65bde5b6634a to 0bbc61128c85 (1 revision)
2021-05-19 chromium-autoroll Roll Vulkan-ValidationLayers from cfd1a0935879 to 65bde5b6634a (5 revisions)
2021-05-19 chromium-autoroll Roll Vulkan-ValidationLayers from db3f43f84989 to cfd1a0935879 (1 revision)
2021-05-18 chromium-autoroll Roll Vulkan-ValidationLayers from 1d86b3235b42 to db3f43f84989 (2 revisions)
2021-05-18 chromium-autoroll Roll glslang from 202c8abae0a3 to e71278cc927f (1 revision)
TBR=enga@chromium.org
Created with:
roll-dep third_party/vulkan-deps
Change-Id: I5a00ff7e4ef3e6237d8a0ed92168c6506656de26
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55255
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
This CL adds the support ofwgpu::CopyTextureForBrowserOptions::alphaOps
for CopyTextureForBrowser(), which allows the user to specify the alpha
operations (DontChange, Premultiply, Unpremultiply) when calling
CopyTextureForBrowser().
BUG=chromium:1217153
Change-Id: Idb5dd4482b33f2ada9aafc24380afeb48f2e26bc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/54800
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Shaobo Yan <shaobo.yan@intel.com>
ShaderRobustnessPerf:
SPIRV-Cross apparently generates incorrect code for MSL and OpenGL, when
attempting to initialize workgroup memory. Disable these tests when not
running with use_tint_generator.
D3D12DescriptorHeapTest:
The UBO layout for a mat2x2 was incorrect, but the test relied upon this.
Temporarily disable the test so we can roll the fix.
Bug: dawn:945
Bug: dawn:946
Change-Id: I810249b26a8a0b583796c0ba63b8a703eb9540e4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55248
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Refer the TODO in ShaderModuleBase::InjectCompilationMessages to
issue dawn:944 for further tracking.
Bug: dawn:753
Change-Id: I2ff09ba5914f2df0182bf26e9001a66782811f06
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55223
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Zhaoming Jiang <zhaoming.jiang@intel.com>
Add the formatted tint messages in OwnedCompilationMessages, which will be emit after creating the shader module succeeds of fails.
This patch also change the compilation messages handling in creating shader modules. Now the compilation messages are separated from sparseResult, and should be handled manually. A new method, ShaderModuleBase::InjectCompilationMessages, is introduced to move a given OwnedCompilationMessages into the shader module, and emit the formatted tint errors and warnings. This method should be called explicitly on a valid or error shader module.
Bug: dawn:753
Change-Id: I5825186c6d9c4aa7725aebd0c302bfce5e1f37cf
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/53890
Commit-Queue: Zhaoming Jiang <zhaoming.jiang@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Also tighten previous suppressions to only apply when using the Tint
generator.
TBR=bclayton@google.com
Bug: tint:904
Change-Id: I22210227c428eb38901904966ec2c3bd70ce607b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55200
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Copies between 3D and 2DArray textures need to be done depth/array
slice by slice via CopyTextureRegion() API on D3D12 because this
API can copy one single subresource every time.
However, if both src and dst textures are 3D texture, we can copy
all depth slices in one shot, which is a fast path for this
copy scenario.
Bug: dawn:547
Change-Id: I950ed58319fb0f30dfc8a2de3e57e8a64406f7e4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55140
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Disabling the one test clearly wasn't enough
Bug: tint:904
Change-Id: I23f448d2f3028fff13e4eb406b08a7175166ea9d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55100
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: Sarah Mashayekhi <sarahmashay@google.com>
Reviewed-by: Sarah Mashayekhi <sarahmashay@google.com>
The vertex buffer alignment in particular is helps make the
implementation of programmable pulling much easier on Metal since the
vertex data will be able to be represented as array<u32>.
Bug: dawn:805
Change-Id: I2bf2742db3b8fa478be620c892925b8b75dc514c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/54659
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
This didn't make sense since these members can be specified to have no
data by setting the length to 0.
- Prevent uses of this patten by adding an assert in WireCmd.cpp's
generator.
- Fix SetBindGroup dynamicOffset to not be optional but default to
nullptr instead.
This issues would cause a read of uninitialized pointers becaus the
generator code looked like this:
SetBindGroupCmd cmd;
cmd.dynamicOffsetCount = record.dynamicOffsetCount; // 1
bool has_dynamicOffset = record.has_dynamicOffsetl // false
if (has_dynamicOffset) {
cmd.dynamicOffsets = ...;
}
// Oh no! dynamicOffsets contains garbage even if dynamicOffsetCount
// is set to 1. dawn_native will happily read it.
Bug: chromium:1220036
Change-Id: I5c468b639f671cef3be2fa64667a0bf114fc902b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/54643
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Values of array and matrix can now only be indexed by a constant value.
Dynamic indexing requires the value to be held in memory.
See: https://github.com/gpuweb/gpuweb/issues/1782
Bug: tint:867
Change-Id: I2b9ad6e40fc8121e7aca3a71c190639b39b0b862
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/54652
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Auto-Submit: Ben Clayton <bclayton@google.com>
Otherwise bindings with non-zero groups get through to the Tint MSL
backend and break assumptions.
Bug: tint:104, dawn:571
Change-Id: I8d95ba142a386ff0d992ffe5f88a7acf93057ce1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/54960
Auto-Submit: James Price <jrprice@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
CopySplitTests unittests were added for 2D texture copy splitter.
Now that we have added 3D texture copy splitter recently, it's time
to enable these unittests for 3D texture copy splitter.
This change enables the CopySplitTests unittests for 3D texture copy
splitter, with some fixes:
- Footprint depends on bufferOffset and copySize, not bufferSize,
- Copy regions overlap validation incorrectly added 1 extra pixel,
- For 2D texture copy regions, there is one empty row at most in
a copy region. However, it is not true for 3D texture copy
regions when we are copying the last row of each slice.
It also adds a few more tests for 3D texture copy splitter when the
copySize.height is 1 and there is an empty row in the copy region.
Bug: dawn:547
Change-Id: I5381993ed5c656da0f82395e7c7bccc54d784767
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/54500
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
TextureOffset should respect both origin and copySize when we are
addressing the empty first row issue. So textureOffset in copy 1
should just move/add (copySize.height - blockInfo.height) rows
in order to copy the last row of all depth slices but the last one.
Bug: dawn:547
Change-Id: I6a1acf656651869c8934897d5c7e8974f1a5eb9a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/54441
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
The config was already being set, but the transform itself was not
being added to the manager.
Bug: dawn:571
Change-Id: I850d5b0f37635598427b4a3a3285d243b89fad46
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/54721
Commit-Queue: James Price <jrprice@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Auto-Submit: James Price <jrprice@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Use the BindingRemapper transform to remap resources binding numbers
to the indices chosen in the pipeline layout.
Bug: dawn:571
Change-Id: I548f063f09970222dea289f05285764fc3ea1b46
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/54520
Commit-Queue: James Price <jrprice@google.com>
Auto-Submit: James Price <jrprice@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
In the timestamp internal pipeline, the ResolveQuery buffer cannnot be
binded as Storage buffer in binding group layout due to it has not
Storage usage.
Add InternalStorageBuffer for buffer usage and
InternalStorageBufferBinding for buffer binding type, make the
QueryResolve buffer implicitly get InternalStorageBuffer and only
compatible with InternalStorageBufferBinding in BGL, not Storage buffer
binding type.
Bug: dawn:797
Change-Id: I286339e703e26d3786c706ded03f850ca17355fb
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/54400
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Commit-Queue: Hao Li <hao.x.li@intel.com>
This feature is not yet implemented in Tint and it not planned for OT.
BUG=dawn:799
Change-Id: Ib97dcd39e8ae956aa6fdc4cc1b148ec7f101b061
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/54280
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
This reverts commit f102e1138b.
Reason for revert: Continuing to get permissions issues
Original change's description:
> Enable Tint running Dawn try jobs on its CQ
>
> Set ACLs to allow calling the builders and create uniquely named
> builders, so there isn't a name collision.
>
> BUG=tint:734
>
> Change-Id: Ic3e61eac6fcc2f097f8be778abaecde642bdd665
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/54100
> Auto-Submit: Ryan Harrison <rharrison@chromium.org>
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: tint:734
Change-Id: I5d7688771b83a97493ecbfaafed54fa817a25ade
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/54564
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
The runtime array parameter is now passed as a pointer, instead of by
value.
Change-Id: I632814d2a2890dbe4476c2b01023a5ff8de42d21
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/54485
Auto-Submit: James Price <jrprice@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
It isn't clear if this should be a limitation of the WebGPU
specification. Until further investigation is done, disallow it in Dawn
to avoid undefiend behavior.
Bug: dawn:812
Change-Id: Iab8208f1ea479263b08ede41374ce1a680ce191e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/53387
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
We have a new validation rule that states that all calls to functions that return a value must use that value. ignore() is the escape hatch.
Bug: tint:886
Change-Id: I9ab8d288b3c54ad4b7e46feda129c36c9136c20b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/54200
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
Set ACLs to allow calling the builders and create uniquely named
builders, so there isn't a name collision.
BUG=tint:734
Change-Id: Ic3e61eac6fcc2f097f8be778abaecde642bdd665
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/54100
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>