Calling Texture::DestroyImpl will cause a crash when passing a
nullptr D3D12 resource to the Present method of
ID3D12SharingContract.
Protect against crashes by checking whether the allocation we're
destroying is valid before proceeding.
Change-Id: Ifb68c1f85383db5027006cf435f43c84d1a463d9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42580
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Bug: dawn:447 dawn:667
Change-Id: I66d5a33febeee6a5ea4efd7c4e97461accce22ee
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/43580
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
Caught by the bots running SwiftShader
BUG=tint:516
Change-Id: I4e93c2f73cf48242b49c8aea1f5f29a21ac6b8e7
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/43600
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
CopyTextureForBrowserTests will cover incoming color format conversion
cases. While it is OK for |unorm| formats to compare their pixel values
on the CPU side, we cannot do such comparisons for the |float| formats
because we may meet the precision issues when comparing a value
generated at the CPU side to the one from the GPU side.
Refactor this test suites by using compute shader and do bit-by-bit
comparison from source texture and destination texture.
BUG=dawn:465
Change-Id: I979fcf1a1d96bbe9f8a4cf2f1a305d488e88b257
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/36140
Commit-Queue: Shaobo Yan <shaobo.yan@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
This patch uses RecordCopyBufferToTextureFromTextureCopySplit() to
record the D3D12 commands in Texture::ClearTexture() so that we can
remove some redundant code in that function.
BUG=dawn:145, dawn:693
Change-Id: Ifd0ba319c335fdf13e60bf748163451d71dad962
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42760
Reviewed-by: Bryan Bernhart <bryan.bernhart@intel.com>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Replaces use of EXPECT_EQ with ASSERT_EQ and allows
ASSERT_EQ to propagate to caller so the test returns
early.
BUG=dawn:625
Change-Id: I6c12aad201f1821fa8c7c1f9a9b735910049cdcf
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42940
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Bryan Bernhart <bryan.bernhart@intel.com>
Commit-Queue: Bryan Bernhart <bryan.bernhart@intel.com>
The level-less variants have been removed from the WGSL spec, so will
be removed from Tint soon.
BUG=tint:516
Change-Id: Ic09ffadc2902ca9cdb3198b91f8ad694887258d4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42704
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
f4cd17472a..0e11e49d19
$ git log f4cd17472..0e11e49d1 --date=short --no-merges --format='%ad %ae %s'
2021-03-01 angle-autoroll Roll SwiftShader from 349abccec8f7 to 106e01583a3a (2 revisions)
2021-03-01 angle-autoroll Roll Chromium from 61aec087e2f8 to 2a5fa9108962 (430 revisions)
2021-01-25 cnorthrop Capture/Replay: Support CaptureGetQueryObject
2021-02-27 ynovikov Fix Ozone backend build flags.
2021-02-26 ynovikov Add EGL_WINDOW_BIT to all Ozone configs' EGL_SURFACE_TYPE
2021-02-25 m.maiya Vulkan: Avoid using assign with BitSets
2021-01-29 shrekshao Reland "Workaround for Mac Intel drawArraysInstanced with first > 0"
2021-02-25 syoussefi Vulkan: Move SPIR-V validation function to common/
2021-02-25 m.maiya Vulkan: Check texture type before calling into feedbackloop check
2021-02-24 m.maiya Vulkan: No need to unmap buffer when adding to mInFlightBuffers
2021-02-25 stha09 GCC: add missing static constexpr member definition
2021-02-24 senorblanco Check that pixel store params are 0 for fastUnpack path on D3D.
2021-02-25 cnorthrop Capture/Replay: Add CubeMapArray support
2021-02-26 ynovikov Skip 3 SimpleStateChangeTestES31
2021-02-24 lubosz.sarnecki gles_ext_params: Implement CaptureGetTexLevelParameterivANGLE.
2021-02-17 ddavenport Query revision id for GPU devices
2021-02-24 lubosz.sarnecki gl_angle_ext: Add param groups to glGetTexLevelParameterivANGLE.
2021-02-26 angle-autoroll Roll vulkan-deps from 55434360b05d to 3ca55e802f5b (6 revisions)
2021-02-26 angle-autoroll Roll SwiftShader from 22186f076bf3 to 349abccec8f7 (6 revisions)
2021-02-26 angle-autoroll Roll Chromium from b90646417bd3 to 61aec087e2f8 (994 revisions)
2021-02-25 lubosz.sarnecki gl.xml: Annotate glDiscardFramebufferEXT with param groups.
2021-02-19 syoussefi Vulkan: Generate xfb support code in SPIR-V for emulation path
2021-02-22 ianelliott Vulkan: Add GPU memory report and analysis documentation
2021-02-24 ynovikov Cleanup EGLMakeCurrentPerfTest instantiation
2021-02-25 ynovikov Suppress 1 VulkanExternalImageTest on Linux AMD Vulkan
2021-02-25 lubosz.sarnecki gen_vk_internal_shaders: Don't include full path on Python 3.4+.
2021-02-24 m.maiya Vulkan: Handle vertex count and primitive mode error cases in TS
2021-02-24 m.maiya Vulkan: Shader support for EXT_shader_framebuffer_fetch_non_coherent
2021-02-23 syoussefi Vulkan: Fix missing visibility barrier for glReadPixels
2021-02-23 syoussefi Vulkan: Fix PBO read pixels with unaligned output pitch
2021-02-18 syoussefi Vulkan: Optimize glMemoryBarrier more
2021-02-23 cnorthrop Capture/Replay: Fix compressed texture level caching
2021-02-23 cnorthrop Docs: Update ANGLE trace creation steps
2021-02-20 amy.liu Fix crash of MultithreadingTest end2end tests.
2021-02-19 jmadill Stubs for OpenCL entry points.
2021-02-11 lubosz.sarnecki Remove redundant (c) from license headers.
2021-02-24 angle-autoroll Roll vulkan-deps from ca177df9b948 to 55434360b05d (16 revisions)
2021-02-24 angle-autoroll Roll Chromium from d163fd7c6905 to b90646417bd3 (481 revisions)
2021-02-18 syoussefi Add a test for sample after deferred clear
2021-02-17 syoussefi Vulkan: Don't break the render pass on dispatch calls
2021-02-18 syoussefi Remove incorrect memory barrier tests
2021-02-11 lubosz.sarnecki Add Collabora, Ltd. to AUTHORS and CONTRIBUTORS
2021-02-23 angle-autoroll Roll VK-GL-CTS from 1a524349f06b to 9cdde06fb38a (1 revision)
2021-02-22 syoussefi Assert valid when using SPIR-V ids
2021-02-12 lubosz.sarnecki capture_replay_tests: Fix repository path retrieval.
2021-02-11 lubosz.sarnecki Generators: Use fixed year in license headers.
2021-02-22 ynovikov Remove old Win x64 bots from CQ
2021-02-19 jmadill Clean up entry point generation script.
2021-02-23 angle-autoroll Roll SwiftShader from d85a7a27b272 to 22186f076bf3 (4 revisions)
2021-02-23 angle-autoroll Roll VK-GL-CTS from a075fac2c633 to 1a524349f06b (4 revisions)
(...)
2021-01-14 jmadill Revert "Vulkan: Prefer host cached memory for Buffers"
2021-01-12 natsu Update roll AOSP scripts to reflect vulkan-deps subdirectory
2021-01-12 timvp Fix call to getImageFormatFeatureBits() in SurfaceVk.cpp
2021-01-14 angle-autoroll Roll SwiftShader from 3549479dc4cc to 5255c465bbba (6 revisions)
2021-01-14 angle-autoroll Roll vulkan-deps from 50bcbaad4cbf to 5869a809d551 (4 revisions)
2021-01-14 angle-autoroll Roll Chromium from 451c64aaec04 to fabc0b0b129a (518 revisions)
2020-08-06 sunnyps Support importing NV12/P010/P016 D3D textures as EGLImage
2021-01-13 ynovikov Don't build angle_end2end_tests_mac_sources on iOS
2021-01-11 m.maiya Allow attributes and uniforms to have the same name
2021-01-13 jmadill infra: Fix win-trace-rel bot typo.
2020-12-30 jmadill Program: Support multiple varying packings.
2021-01-12 cnorthrop Capture/Replay: Add DrawBuffer state to MEC
2021-01-12 jmadill Test Runner: Add a slow tests list.
2021-01-12 jmadill Remove Sleep() from PrimitivesWrittenAndGenerated test.
2021-01-13 jmadill infra: Fixes for config.
2021-01-13 jwata Use CAS in scripts/trigger.py
2021-01-12 jmadill Add configuration for trace test bots.
2021-01-13 angle-autoroll Roll vulkan-deps from e59ae1af7571 to 50bcbaad4cbf (7 revisions)
2021-01-13 angle-autoroll Roll Chromium from 2a7e78c75a37 to 451c64aaec04 (494 revisions)
2021-01-12 cnorthrop State: Provide reference to image unit binding vector
2021-01-12 jmadill Vulkan: Add YUV G8_B8_R8_3PLANE_420_UNORM format.
2020-12-02 cnorthrop Allow GL_OES_shader_image_atomic when non-conformant
2021-01-11 jmadill Vulkan: Index mandatory support table by ANGLE format.
2021-01-12 syoussefi Vulkan: Increment buffer view serials only when used
2021-01-11 syoussefi Vulkan: Notify ContextVk when UtilsVk binds compute pipelines
2021-01-12 angle-autoroll Roll SwiftShader from 348ba200aa29 to 3549479dc4cc (3 revisions)
2020-06-25 jonahr GL: Clean up Display code related to multithreading
2021-01-12 syoussefi Reland "Use is_apple instead of is_mac and is_ios everywhere"
2021-01-12 angle-autoroll Roll Chromium from 734de1a6b288 to 2a7e78c75a37 (67 revisions)
2021-01-12 angle-autoroll Roll Chromium from 193bb22c8c9d to 734de1a6b288 (311 revisions)
2021-01-08 natsu Default roll_aosp.sh to copy artifacts to vendor partition
2021-01-08 jmadill Vulkan: Use angle::FormatID instead of VkFormat.
2021-01-11 stha09 libstdc++: fix incomplete type for FramebufferCache
2020-11-04 vantablack Reland "Created test and fixed texture storage bug in d3d11"
2021-01-07 lfy Vulkan: Prefer host cached memory for Buffers
2021-01-11 ynovikov Fix iOS build
2021-01-11 ynovikov Enable building angle_white_box_tests on Fuchsia
2021-01-08 ianelliott dEQP: Avoid undefined right-shift behavior for GLhalf
2021-01-11 jmadill Remove obsolete build flag.
2021-01-11 angle-autoroll Roll Chromium from 29d2d6a2d436 to 193bb22c8c9d (106 revisions)
2021-01-11 angle-autoroll Roll vulkan-deps from e395b66ed41c to e59ae1af7571 (5 revisions)
2021-01-11 angle-autoroll Roll SwiftShader from 937395c1ed5d to 348ba200aa29 (6 revisions)
2021-01-11 angle-autoroll Roll Chromium from 28ecef438c2c to 29d2d6a2d436 (82 revisions)
2021-01-09 ynovikov Roll chromium_revision 1e679b773d..28ecef438c (841389:841845)
2021-01-08 syoussefi Revert "Use is_apple instead of is_mac and is_ios everywhere"
2020-12-30 timvp Tests: Add Saint Seiya Awakening: Knights of the Zodiac trace
2021-01-07 syoussefi Vulkan: Add a perf test for pre-rotation code injection
2021-01-08 syoussefi Fix translator fuzzer
2021-01-06 timvp Tests: Add World War Doh trace
2021-01-08 jmadill Add OWNERS info for Vulkan test utils.
Created with:
roll-dep third_party/angle
Bug: dawn:447
Change-Id: I3653ae78cad4503d29cecad9a8c8184ef4eb25a6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/43420
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
This patch adds a regression test to dawn_end2end_tests for an
Intel D3D12 driver bug about the T2T copies with specific texture
formats when the source mipmap level is greater than 0.
This patch also does several clean-ups in CopyTests.cpp to support
testing arbitrary texture formats:
1. Initialize the source textures with device.WriteTexture().
2. Set default values for TextureSpec.copyLevel (0),
TextureSpec.levelCount (1) and TextureSpec.copyOrigin ({0, 0, 0}).
3. Add TextureSpec.format and set the default value for it (RGBA8Unorm).
4. Support initializing and comparing the texture data with arbitrary
texture format instead of RGBA8Unorm only in CopyTests_T2T.
5. Check all the texels in the related destination texture subresources
instead of only the copied texels.
BUG=chromium:1161355
TEST=dawn_end2end_tests
Change-Id: Ib32aac57dc7bdc9a4c2edc96093afa945aa08a5c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42240
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
This change allows multiple Dawn textures to be created from the same
D3D11 resource. This avoids re-opening the shared handle by caching the
D3D12 resource outside of the Dawn texture.
Re-opening the handle costs 5-10% of CPU cycles per frame, which far
exceeded syncronization costs.
In a future change, WrapSharedHandle will be depreciated.
BUG=dawn:625
Change-Id: If0d2dc9b7445ec3ae718bc5305164db88057c4ea
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42140
Commit-Queue: Bryan Bernhart <bryan.bernhart@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
tint::transform::Transform::Output::diagnostics is deprecated.
Diagnostics are now all in the Output::program.
Use the VertexPulling(const Config&) constructor instead of the setters. These are deprecated.
Change-Id: Icefb84719d4915550c1e554e6d0c6e06ebb05f5c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42266
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Although VkPhysicalDeviceVulkan11Features::storageBuffer16BitAccess is a subset
of VkPhysicalDeviceVulkan11Features::uniformAndStorageBuffer16BitAccess, when
the SPIR-V Capability (StorageBuffer16BitAccess) was declared, we must enable
the VkPhysicalDeviceVulkan11Features::storageBuffer16BitAccess feature
according to the requirements of the spec.
BUG=dawn:675
Change-Id: I99f9eb4c5f2fd6c6565a51063817efb8bc88216f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42620
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Hao Li <hao.x.li@intel.com>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Shifts the older enum values up by 30, but if anyone was using values
rather than the enums themselves they'd land on the right formats
anyway.
Bug: dawn:695
Change-Id: I92a177b427fb1bb14b60d9280f89d030c5941a38
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42561
Commit-Queue: Brandon Jones <bajones@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Auto-Submit: Brandon Jones <bajones@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Async functions should fail by rejecting the callback instead of
generating a device error. This fixes a leak in the wire where
the allocation for the callback was never delete since it was
never called.
Fixed: chromium:1181627
Change-Id: I840073c1d1b5f1401aa8ed29d3c8f0e1e4fefd35
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42540
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Currently on D3D12 backend a device lost will occur when we do a T2T
copy under the following situations:
1. with Depth32Float
2. only copy one row
3. bufferCopyOffset == 256
This is because in current implementation it is possible for us to do
a copy with D3D12_SUBRESOURCE_FOOTPRINT.Depth > 1, which is not allowed
with DXGI_FORMAT_D32_FLOAT because this format is not supported to be
used as 3D textures.
This patch adds a regression test for this bug and we will fix it
later.
BUG=dawn:693
TEST=dawn_end2end_tests
Change-Id: Ib6fe70988b5b217d5f14d3f32999b3841e5d23b9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42600
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Brandon Jones <brandon1.jones@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
The are replaced by Queue::OnSubmittedWorkDone. Only Queue::CreateFence
is deprecated since all other fence-related calls require a fence to
work.
Also ports a number of uses of fences in test harness to use
Queue::OnSubmittedWorkDone instead.
Bug: chromium:1177476
Change-Id: I479415f72b08158a3484013e00db8facd11e6f33
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42660
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Brandon Jones <bajones@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Bug: none
Change-Id: Ic437dc7656613d9a8088dd51f1ed0713f1992415
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42720
Auto-Submit: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Bug: dawn:680
Change-Id: I6d57280ab11381649deef51ee7babf5ca73f359b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42340
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
This is using the Tint -> SPIRV-Cross path, but Tint supports
the SPIR-V part now, so it works correctly in Dawn's tests.
Bug: tint:400
Change-Id: I6efd9447a9b454fb866467d65fda9350ec772f18
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42560
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
This works for the SPIR-V tint backend.
Other backends need to be enabled seperately.
Bug: tint:463
Bug: dawn:571
Change-Id: I4c937eec381a05609b267d36d202844758b13547
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42641
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
It was being taken from the pre-transformed program, not the post-transformed program.
If we did get a transform error, the string would be empty.
Also change the signature of RunTransforms() to take a Transform* instead of a Manager*. There's nothing special about Manager anymore - it is just a transform that acts as a group of other transforms.
Change-Id: I4ea6cb022b5967b3c6b8c628517727dc3da3be8e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42640
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
This is the replacement for Fence in the single-queue WebGPU world. To
keep this CL focused, it doesn't deprecate the fences yet.
Bug: chromium:1177476
Change-Id: I09d60732ec67bc1deb49f7a9d57699c049475acf
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41723
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Adds dawn_native::ResetDeviceInternal, which allows us to destroy and
create a new ID3D12Device. The device should be reset after every test
when GPU-based validation is enabled in order to prevent GBV objects
from using a significant amount of memory over time.
Bug: dawn:623
Change-Id: I654d093d993ab0198c6c240bd0f3f843d2762680
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41340
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
Commit-Queue: Brandon Jones <brandon1.jones@intel.com>
This reverts commit 9fdbb74072.
Reason for revert: The SPIRV-Cross GN files have a bug which is fixed upstream, but Skia is on an old version of SPIRV-Cross so they don't have the fix. So, the build fails when rolling Dawn into Skia complaining about unknown `-fno-exceptions` on the windows bots. Need Skia to either move to vulkan-deps, or roll their spirv-cross forward before this can re-land.
Original change's description:
> Use upstream SPIRV-Cross GN files.
>
> Previously spirv-cross didn't have its own sources files but this
> changed recently so we should use them. This will ultimately allow
> sharing targets between multiple components in Chromium.
>
> Bug: chromium:1179277
> Change-Id: Ib4bb1884b9ba9c4c3804e96d8adbb8905c60c9a3
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41725
> Auto-Submit: Corentin Wallez <cwallez@chromium.org>
> Reviewed-by: Peng Huang <penghuang@chromium.org>
> Reviewed-by: Austin Eng <enga@chromium.org>
> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Bug: chromium:1179277
Change-Id: If1003bafa7b35f502c08b2dab91dd3d416aab077
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42420
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Auto-Submit: dan sinclair <dsinclair@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
As was done for DawnTest, we should set ANGLE's default backend to
SwiftShader for the examples as well.
Bug: dawn:691
Change-Id: I6ced2ffbeed48a555e74a9373c52cbf9e1e3c708
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42301
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
The new tint::transform::[Spirv,Hlsl,Msl] transforms sanitize the tint::Program for the given backend.
The tint::transform::Spirv transform handles edge cases for sample masks (crbug.com/tint/372). We can now enable these tests.
Rework dawn_native::[opengl,vulkan]::ShaderModule::Initialize() so that transforms are applied *before* calling ShaderModuleBase::InitializeBase(). This is done as InitializeBase() wants to validate the SPIR-V, which requires the pre-processing of tint::transform::Spirv.
InitializeBase() also performs shader reflection which needs to be performed on the post-transformed program for the information to be correct.
Bug: tint:372
Change-Id: I4c96ce89b6ae286972549d8c7efe59e77c469063
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42223
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
Having the [[block]] decorator on the nested Particle struct causes
SPIRV-Cross to not emit it (see bug). Removing the decorator from
the Particle while leaving it on the top-level struct works fine.
This fixes the issue, but validation should be added to Tint
to catch the problem (this work is tracked in https://bugs.chromium.org/p/tint/issues/detail?id=320).
Bug: dawn:611
Change-Id: I8bef811e314ed758f805247977f8b129477abd39
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42300
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
Store index buffer size in CommandBufferStateTracker and skip
issuing drawIndexed call if it's out of bounds.
Bug: dawn:622
Change-Id: I8f4bd8ba03dea931815dc0db87ffacb9936a123d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42000
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Shrek Shao <shrekshao@google.com>
SwANGLE does not support GL_EXT_texture_compression_s3tc.
However, it does support GL_EXT_texture_compression_dxt1,
GL_ANGLE_texture_compression_dxt3 and GL_ANGLE_texture_compression_dxt5,
which should be sufficient for Dawn's purposes.
Note that sRGB formats may be problematic for OpenGL ES in general,
but ANGLE does support them, so we can satisfy the requirements for
Dawn's texture_compression_bc and exercise the codepaths on ES.
glPixelStorei is not only unsupported for CompressedTexSubImage*D()
but causes asserts in ANGLE and validation errors elsewhere. The fix
is to scope the glPixelStorei() calls to the non-compressed codepath.
Bug: dawn:580
Change-Id: I68fa019eda2aee37a097e697cfc87bcdc28c1f12
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42120
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
This introduces a macro DAWN_TRY_WITH_CLEANUP which allows
some code to be run before the early return.
Bug: chromium:1177332
Change-Id: I529c9ca6f2b0cf6ffd4bf85719a4e2a1c2552d1b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42003
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
In upstream WebGPU, error scopes do not wait for queue operations or
async operations like create*PipelineAsync or mapAsync. This simplifies
the implementation so we don't need to track error scopes by parent
pointers but can instead have a simple stack.
Bug: dawn:22, chromium:1177107
Change-Id: Ic7344cbd96e257cbabc0f414934a5e42a4020a13
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41980
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>