Clears nonrenderable color formats and merges zero vs nonzero clears
to use the same code path.
Bug: dawn:145
Change-Id: Ibe0745907688e149e6d017ff088a05f4b613b4a8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10140
Commit-Queue: Natasha Lee <natlee@microsoft.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
This patch enables BindGroupTests/ReusedUBO and BindGroupTests/UBOSamplerAndTexture
on Metal as both of them can pass with the latest version of SPIRV-Cross.
BUG=dawn:33
TEST=dawn_end2end_tests
Change-Id: I906d782a93232dd272edb93f30952ba6cac1d6d2
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10740
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Roll third_party/SPIRV-Tools/ 0cbdc7a2c..5a581e738 (8 commits)
0cbdc7a2c3..5a581e738c
$ git log 0cbdc7a2c..5a581e738 --date=short --no-merges --format='%ad %ae %s'
2019-08-29 bclayton spvtools::Optimizer - don't assume original_binary and optimized_binary are aliased (#2799)
2019-08-28 stevenperron Check feature mgr in context consistency check (#2818)
2019-08-26 stevenperron Refactor instruction folders (#2815)
2019-08-23 8729214+jonahryandavis Add missing files to BUILD.gn (#2809)
2019-08-22 afdx Extend reducer to remove relaxed precision decorations (#2797)
2019-08-22 stevenperron Handle Id overflow in private-to-local (#2807)
2019-08-21 stevenperron Even more id overflow in sroa (#2806)
2019-08-21 stevenperron Add name for variables in desc sroa (#2805)
Roll third_party/glslang/ 95609e6d9..796df2d74 (35 commits)
95609e6d92..796df2d74e
$ git log 95609e6d9..796df2d74 --date=short --no-merges --format='%ad %ae %s'
2019-08-28 rharrison Change to initializing the variable
2019-08-28 rharrison Return nullptr after assert to avoid uninitialized variables
2019-08-28 cepheus ESSL/SPV: Fix#1856: Allow ESSL shaders to compile to OpenGL SPIR-V.
2019-08-28 cepheus Documentation: Provide more detail in setting up the environment.
2019-08-27 cwallez BUILD.gn: Add missing HLSL files.
2019-08-26 cwallez GN build (for Chromium): enable HLSL in dependents.
2019-08-26 baldurk Dereference any array type before expanding root-level SSBO members
2019-08-23 dneto GN build (for Chromium): enable HLSL
2019-08-22 jbolz GL_NV_integer_cooperative_matrix support
2019-08-22 cepheus Bump revision.
2019-08-22 cepheus GLSL: Inherit memory qualifiers, both declaratively and in execution.
2019-08-22 jonahr Fix conformance with -Wextra-tokens
2019-08-21 cepheus Bump version.
2019-08-21 cepheus web: Fix accidental additon of refract() prototypes and update README.
2019-08-13 cepheus Web: Turn off includes, independent preprocessing path, fine tune all.
2019-08-11 cepheus Web: Make switched methods all be non-virtual, more web-dependent code,
2019-08-10 cepheus Web: Optional error management and error tightening.
2019-08-09 cepheus Web: Use isEsProfile() instead of run-time testing; remove more atomics
2019-08-08 cepheus Web: Remove unused stage functionality, SPIR-V logger, and hex_utils
2019-08-08 cepheus Web: Remove unnecessary GLSL numeric types, and some collateral.
2019-08-08 cepheus Web: Tighten up sampling code and interfaces.
2019-08-07 cepheus Web: Complete the removal of vendor-specific #ifdef's, including CMake.
2019-08-06 cepheus Web: Prune grammar and lexor down to needed subset.
2019-08-06 cepheus Web: Generalize _EXTENSIONS* in SPIR-V back-end.
2019-08-06 cepheus Web: Turn off bracket-style attributes, reflection, and IO mapping.
2019-08-01 cepheus Web: Remove/rationalize a set of *_EXTENSIONS, using GLSLANG_WEB.
2019-07-31 cepheus Web: First pass of tabling the built-in function declarations.
2019-07-28 cepheus Web: Selectively remove a few key features, using #ifndef GLSLANG_WEB
2019-07-27 cepheus Web: Change a bunch of HLSL methods from dynamic to compile-time known.
2019-07-27 cepheus Web: Remove a few additional HLSL constructs with ENABLE_HLSL.
2019-07-26 cepheus Web: Add sanity check test suite for smaller-footprint builds.
2019-08-20 cepheus Bump revision.
2019-08-14 kainino convert_glsl_to_spirv: fail early, reduce copies, remove input buffer allocation
2019-07-25 kainino make glslang.js easy to use
2019-08-14 kainino enable build for node
Roll third_party/shaderc/ 210fac890..f4786674e (10 commits)
210fac8904..f4786674e3
$ git log 210fac890..f4786674e --date=short --no-merges --format='%ad %ae %s'
2019-08-28 zoddicus Seperate non-API spvc code into private source file (#794)
2019-08-27 zoddicus Rolling 7 dependencies and updating known_failures (#791)
2019-08-27 zoddicus Add ToVulkan API methods (#792)
2019-08-27 zoddicus Refactor internals of conversion API to be more modular (#785)
2019-08-25 dneto Remove extra semi-colons (#790)
2019-08-23 dneto GN build: enable HLSL in Glslang (#789)
2019-08-22 9856269+sarahM0 spvc: Add option to inject code to enforce robust-buffer-access
2019-08-21 dneto Force Glslang to support HLSL in its interface (#784)
2019-08-21 zoddicus Fix some Python2 vs 3 issues in update_build_version.py (#783)
2019-08-20 zoddicus Manually cast fuzzing data to avoid new GCC warning (#782)
Roll third_party/spirv-cross/ 4ce04480e..ee7357f2a (11 commits)
4ce04480ec..ee7357f2a6
$ git log 4ce04480e..ee7357f2a --date=short --no-merges --format='%ad %ae %s'
2019-08-29 post MSL: Add {Base,}{Vertex,Instance}Index to bitcast_from_builtin_load.
2019-08-02 cdavis GLSL: Fix post-depth coverage for ESSL.
2019-08-28 post Run format_all.sh.
2019-08-27 post GLSL: Assume image and sampler can be RelaxedPrecision.
2019-08-27 post MSL: Deal with array copies from and to threadgroup.
2019-08-27 post Do not allow base expressions for non-native row-major matrices.
2019-08-27 post Deal with ldexp taking uint input.
2019-08-26 post Move branchless analysis to CFG.
2019-08-26 post Elide branches to continue block when continue block is also a merge.
2019-08-26 post Deal correctly with sign on bitfield operations.
2019-08-26 post Fix variable scope when switch block exits multiple times.
Roll third_party/spirv-headers/ e4322e3be..059a49598 (1 commit)
e4322e3be5..059a49598c
$ git log e4322e3be..059a49598 --date=short --no-merges --format='%ad %ae %s'
2019-06-12 cepheus Grammar: Add instruction-printing classes.
Created with:
roll-dep third_party/SPIRV-Tools third_party/glslang third_party/shaderc third_party/spirv-cross third_party/spirv-headers
Change-Id: Iaa7791ec4d7ed0c383ba19544e74e0281372495c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10660
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Following WebGPU spec change at https://github.com/gpuweb/gpuweb/issues/378,
vertexInput descriptor from GPURenderPipelineDescriptor should not be
required anymore.
BUG=dawn:22
Change-Id: I5d2500a758f44b7a7db2d2c23b359f1012221227
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10640
Commit-Queue: François Beaufort <beaufort.francois@gmail.com>
Reviewed-by: Austin Eng <enga@chromium.org>
This patch enables CopyTests_T2B.Texture2DArrayMip/Vulkan on Intel
because it can pass on the Mesa driver version >= 18.2.8
BUG=dawn:101
TEST=dawn_end2end_tests
Change-Id: I93bb6458989a6602ddda1adef5be0194362147d8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10580
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Metal requests that stride size of vertex buffer needs to be a multiple of 4 bytes. Dawn
should also follow the restriction.
BUG=dawn:130
Change-Id: I92eb67e944ab170a5dac5305c930bae507cb034d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10621
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
This patch adds a perf test harness for Dawn and a simple test of
buffer upload performance. The test harness is based off of ANGLE's
perf tests.
Because perf tests are parameterized to support multiple test
variants, this patch also adds DawnTestWithParams and ParamGenerator
to support instantiating tests with additional parameters.
Bug: dawn:208
Change-Id: I60df730e9f9f21a4c29fc21ea1a8315e4fff1aa6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10340
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
This is to better match the naming of the uncapturederror event
in WebGPU.
Bug: dawn:153
Change-Id: Ic2bc1f46bf3d1f0d14cbd5cb8ea6e54d1679f987
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10542
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
This same callback will be used for push/pop error scope.
Bug: dawn:153
Change-Id: I2771539e13f8a4e6a59f13c8082689d25ba44905
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10460
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
DeviceLost is a better name because we don't have a "context" as in
OpenGL.
Bug: dawn:153
Change-Id: Idf7fcb731a0e138f46a81fb31f0d11ff58b4fa96
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10541
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
This is to follow changes to WebGPU's IDL and header file where the Bit
suffix disappeared. This caused a conflict with
utils/dawn_native::ShaderStage that were both renamed to
SingleShaderStage.
BUG-dawn: 22
Change-Id: I7b085686775fa19e4b4a3b54979903d72f3ef660
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10462
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
This is to match the naming convention of WebGPU's WebIDL and webgpu.h
BUG=dawn:22
Change-Id: Ia91c5a018403e6a72eb0311b5f1a072d102282a2
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10461
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Passing "--gtest_list_tests" as an argument to the gtest binary lists
the tests in the binary. However, when the test suite is parameterized
(like in the case of dawn_end2end_tests), the output will list the
string name of the parameter along with the test name. Since there is no
stream insertion overload for DawnTestParam, we get this output:
./dawn_end2end_tests --gtest_list_tests
BasicTests.
BufferSetSubData/OpenGL # GetParam() = 56-byte object <03-00 00-00 19...
BufferSetSubData/Vulkan # GetParam() = 56-byte object <04-00 00-00 19...
...
This CL adds an implementation to display the string name of the param
instead.
BUG=chromium:993457
TEST=run ./dawn_end2end_test --gtest_list_tests
Change-Id: Ifae65a9eaf96448341e6ed1894f116f1af1154b7
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10240
Commit-Queue: Brian Ho <hob@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
This patch adds the workaround for the Vulkan SPEC issue in the T2T
copies with compressed formats when the parameter "extent" fitting in
one subresource but not fitting in another. You can get the detail of
the issue through the following link:
https://github.com/KhronosGroup/Vulkan-Docs/issues/1005
This patch implements the workaround for this issue by splitting the
affected T2T copy into a T2B and a B2T copy with an internal buffer.
BUG=dawn:42
TEST=dawn_end2end_tests
Change-Id: I29c48da0b5ff85f9860839a82733e8c1c43acfc6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10020
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 a missing call of InitializeSupportedExtensions() in the
constructor of Adapter on Metal backend so that we can correctly create
device with required extensions on Metal.
BUG=dawn:42
TEST=dawn_end2end_tests
Change-Id: Ifba41d2ae43ca054df2b0f3f19503f66fe641a72
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10500
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
This test was failing consistently on win-msvc-dbg and occasionally
on win-msvc-rel. It's suspected the hardware does not properly
support __lzcnt64 so the function is implemented with _BitScanReverse64.
Bug: dawn:213
Change-Id: I0712f87787aad4aad7233bfb72846ec3dba96239
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10481
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
dawn_native::d3d12::Device::mFenceEvent is created in Initialize
but is never closed.
Fix is to close in the destructor if it has been previously created.
Bug: dawn:215
Change-Id: Ie9e7a395fe6fe791e2581295ed12f20070671afa
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10480
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
This patch implements the creation, buffer-to-texture copies and
texture-to-texture copies with BC formats on OpenGL backend. Note that
OpenGL SPEC also has the same issue about texture-to-texture copies
with compressed textures as Vulkan SPEC, so we have to skip the related
case.
The texture-to-buffer copies with BC formats and related end2end tests
will be supported in the following patches.
BUG=dawn:42
TEST=dawn_end2end_tests
Change-Id: I76b16862259cb2df77f202ed7ed433d41aa3cd47
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10220
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Gclient now creates a .cipd directory so we ignore it. third_party/stb
was removed so we stop ignoring it.
BUG=
Change-Id: Iad1b9309f32f900cd19f199ba51acafd2b936358
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10360
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Using a sampler with filtering on int / uint textures makes them
incomplete, causing them to sample black on very conformant drivers.
Each opengl::Sampler is updated to create to GL sampler, a filtering one
and a non-filtering one.
PipelineGL and CommandBufferGL takes advantage of the new
BGLBinding::textureComponentType to know which of the two samplers to
use.
BUG=dawn:128
Change-Id: Idbf5668213bbe6a8639847d57e2be1244f97800c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10282
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
This is a new compatibility constraint that the texture component type
must match between what's declared in the shader and the bind group.
- Format is updated to include the component type of the format.
- Validation and state tracking is updated to reflect the new
BGLBinding member.
- TextureFormat tests are updated to pass with the added validation and
to remove a redundant enum definition.
- BGLBinding::multisampled validation is added because it was next to
modified code for the BGLBinding::textureComponentType validation.
- A redundant BGL caching test was removed.
BUG=dawn:128
Change-Id: I9c4ae92062769c3ecf74caf46f27415344dfad77
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10281
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
They were removed from the WebGPU spec because they cannot be supported
everywhere, for example on recent Qualcomm chips.
BUG=dawn:128
Change-Id: I189bd1b34105f215699ddd404341bbee964c8679
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10280
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Adds validation and unittests that render bundle color attachments are
color renderable texture formats and depth/stencil attachments are
depth/stencil texture formats.
Bug: dawn:154
Change-Id: I4d062a82b32fb38820fb3ebeb4c265306aa7af24
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10261
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
This patch also adds unittests to check the behavior.
Bug: dawn:154
Change-Id: I49f4c0ab98cd823231a701192bdb725937960833
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10260
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
This CL removes undefined behavior from NextPowerOfTwo(0). Currently on
Linux, calling NextPowerOfTwo(0) simplifies down to:
- 1ull << (64 - __builtin_clzll(0 - 1));
- 1ull << (64 - __builtin_clzll(INT_MAX));
- 1ull << (64 - 0);
- 1ull << 64
Since 64 is the same width as the long long in our left operand, this
left shift results in undefined behavior (C++11 standard 5.8.1). For a
default Chrome compile, this does not cause any issues; 1ull << 64
results in 0.
In ChromeOS, however, we compile with ThinLTO which, among other things,
inlines various functions in the interest of performance. When
NextPowerOfTwo is inlined, the undefined behavior of our invalid left
shift borks the stack which causes the Math.NextPowerOfTwo unit test to
fail.
BUG= chromium:993457
TEST= verified that Math.NextPowerOfTwo now passes with LTO
Change-Id: I2702ba0b780203643da1d98ad0380098c7b3eab0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10180
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Brian Ho <hob@chromium.org>
Checks if we support specific handles and specific usages on the
current device. If we don't, Supported() fails and we stop the import.
Bug: chromium:976495
Change-Id: Icfe044a3c4d912913823728100888ab05f22afd5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10160
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Idan Raiter <idanr@google.com>
This test catches when image layout is broken, by copying a non-trivial
image after it's imported across devices.
Bug: dawn:206
Change-Id: Ic980cfe31c0e564176c6c060f4a1fab220737938
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10162
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Idan Raiter <idanr@google.com>
This patch adds tests for SetViewport to verify that the fractions
of parameters (x, y, w, h) in viewport are not truncated.
BUG=dawn:53, dawn:205
Change-Id: I566509234c7a208989ef7ddfc2b15203b10614a0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10120
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Yunchao He <yunchao.he@intel.com>
Clears nonrenderable color formats and adds a clearValue enum to help
share the code path between zero and nonzero clears.
Bug: dawn:145
Change-Id: I285521cae0ee71625602b949888b21481a05fb8e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10021
Commit-Queue: Natasha Lee <natlee@microsoft.com>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Used to replace CONTEXT_LOST when allocation fails.
BUG=dawn:152
Change-Id: I1b8d0061f2915df71f263e0712dba3d47d08e2b3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10060
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
This CL updates a few flags to support Chrome OS:
- Disables the OpenGL backend on Chrome OS builds.
- Removes the X11 dependency for Chrome OS builds because we do not
support X11.
- Removes the XCB dependency (again, no X11).
BUG=chromium:993457
TEST=e2e and unit tests build and pass on Intel Chrome OS devices
Change-Id: I1cb06453ccc94d1b68a6998ea635bddd6fb7b5ad
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10100
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
This CL implements RenderBundle and RenderBundleEncoder in the frontend
and adds unittests for validation.
Bug: dawn:154
Change-Id: Ice5ecd384cd627ad270b73052408f8139d1ea5f4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/9221
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
As part of enabling WebGPU on Chrome OS, we would like to run the Dawn
unit and e2e tests as part of the Chrome OS test suite. This CL removes
the GLFW dependency because Chrome OS does not support GLFW.
The GLFWwindow is only used to create swap chains for the various
backends, but these swap chains are not actually used in the tests
(the e2e tests render to textures instead). The swap chains are only
referenced as part of an unused debugging function:
SwapBuffersForCapture which we can safely remove as per my discussions
with kainino@ and enga@.
We still need GLFW for OpenGL, so we conditionally include it on
platforms that enable the OpenGL backend (which Chrome OS is not).
Note: enga@ suggested to create a VulkanWindowlessBinding that has an
empty GetSwapChainImplementation, but after exploring the option, it
seems like a bit too many ifdefs. In the end, I think it's cleaner to
just remove the *Binding classes entirely.
BUG=chromium:993457
TEST=tests compile and pass for all values of dawn_enable_opengl
Change-Id: I067b12a23f2c236f5506252cd7727b847e79a667
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10080
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Brian Ho <hob@chromium.org>
This patch provides Chromium TRACE_EVENT macros and hooks for
implementing the TRACE_EVENT api.
Bug: chromium:958013
Change-Id: I033b1c7ca57c550504a1bea1898a1a152831922b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/7060
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
This test is flaky on Windows on Intel HD 530. Skip it on Windows for now.
BUG=dawn:55
Change-Id: I537ef66ee6b0844e8b1dfd46fae47c5921451e55
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10040
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Cannot reproduce failure on GTX1060 and GTX2080Ti with latest driver. So disable
inherit test on compute shader and reland this patch
Original change's description:
> Fix dynamic buffer offset issues on D3D12 backend
>
> This patch fixes
> 1. Inherit dynamic buffer offsets : dawn chooses vulkan
> like inherit behaviour, so dynamic offsets need to be inherited.
> This patch adds inherit dynamic offsets between pipelines support and
> adds tests to cover it.
>
> 2. Dynamic offsets are skipped when groups have been set : in D3D12
> backend, when invoke SetBindGroup, dawn will check whether this group
> has already been set and skip updating root signature if the answer is
> yes. However, this behaviour will affect dynamic offsets update. With
> the latest patch, we always update dynamic offsets, even if they didn't
> change and adds tests to cover it.
>
> This patch also hit a dawn's issue about storage buffer validation in compute pass.
> Currently the validation is a workaround to avoid access conflicts but will impact
> using dynamic buffer offset in compute pipeline. Fix this issue is hard so disable
> related test for now and will enable it after the issue been fixed. File dawn bug
> 198 to track this
>
> BUG=dawn:55
BUG=dawn:55
Change-Id: Ia105786c035eafc6f68dcb54e6c1145b06c6a630
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/9960
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Shaobo Yan <shaobo.yan@intel.com>
Validation of GPURenderBundle will share code with RenderPass
validation. Factor validation of commands for GPURenderBundle
into a separate function.
Bug: dawn:154
Change-Id: I79a229592ead27d462da0dd2d12fbdb95443ff19
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/9980
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
This change adds platform-dependent services that handle creating
semaphores and importing image memory. Then, we use them to wrap a
texture from an outside source, and release a signal semaphore back
when we're done with it. This will be used to allow chrome to render
dawn on Vulkan platforms.
Bug: chromium:976495
Change-Id: I9f07eaf436e10aa6bd88cffdc74fd23834d62ee0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/8340
Commit-Queue: Idan Raiter <idanr@google.com>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Clear through loadop instead of standalone clear operation to optimize
efficiency on modern desktop GPUs and mobile GPUs.
Removed clear calls in TransitionForPass for render pass
to help optimize clearing using loadop instead.
Compute pass textures and sampled textures are still cleared in transition.
Bug: dawn:145
Change-Id: I84082bdea3ed7be75683389132d8b296051731b7
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/8641
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Natasha Lee <natlee@microsoft.com>