8443 Commits

Author SHA1 Message Date
Rafael Cintron
7e8385c183 Move and improve RefCounted
- Move RefCounted to common (from dawn_native) so that we can use
it from additional places.
- Use EXPECT_ macros instead of ASSERT_ in RefCounted tests for
improved logging on failures.
- Add a missing test for Ref::Detach.
- Plug memory leak in RaceOnReferenceRelease

Change-Id: Iaa7b11b5a6fa146e3c322143279a21a4ac027547
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/19903
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
2020-04-20 17:36:22 +00:00
Corentin Wallez
8edb723dea Revert "Add ComparisonSampler binding type and validation tests"
This reverts commit 6d9e4f8076b645c557453f4b566bf9c38b4a51eb.

Reason for revert: Breaks the roll in Chromium, gpu_sampler.cc must first be
fixed to use the new undefined value, before this can be landed.

Original change's description:
> Add ComparisonSampler binding type and validation tests
> 
> Bug: dawn:367
> Change-Id: Iba1d3d03f6247a356b6f3fabfe7a7ba3c0753171
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/18423
> Reviewed-by: Austin Eng <enga@chromium.org>
> Commit-Queue: Austin Eng <enga@chromium.org>

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

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: dawn:367
Change-Id: Ic071a601df2063bd2da5388b2e75c1a121924a69
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/19983
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-04-20 17:21:52 +00:00
dan sinclair
3df2044e36 Add GLSL normalize method.
This CL adds type determinater support for Normalize.

Bug: tint:5
Change-Id: Idbea41942172f8404122b7a756ccf1ec5aad2af8
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19950
Reviewed-by: David Neto <dneto@google.com>
2020-04-20 15:51:18 +00:00
dan sinclair
a49328f60e Add support for GLSL exp, exp2, log, log2, sqrt and inversesqrt
This CL adds type determiner support for the Exp, Exp2, Log, Log2, Sqrt
and InverseSqrt GLSL methods.

Bug: tint:5
Change-Id: I3b9e799a8ebe5e8c96c1daf07131feae40e0c54e
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19949
Reviewed-by: David Neto <dneto@google.com>
2020-04-20 15:49:50 +00:00
dan sinclair
132b2daa19 Add GLSL trig methods.
This CL adds support for the GLSL trig functions.
 * sin
 * cos
 * tan
 * asin
 * acos
 * atan
 * sinh
 * cosh
 * tanh
 * asinh
 * acosh
 * atanh

Bug: tint:5
Change-Id: I38c8bf45c3aeeef81711de3a3eca6a9339af146c
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19948
Reviewed-by: David Neto <dneto@google.com>
2020-04-20 15:49:43 +00:00
dan sinclair
b90a56fb66 Add GLSL Radians and Degrees methods.
This CL adds support to the type determiner for the GLSL Radians and
Degrees methods. We use the general float calls for this because we only
support FP32 and have plans for FP16. Other floating point sizes are not
supported but we have no support for them..

Bug: tint:5
Change-Id: I38f0551ce5f9ed7dd31496f13880697cd1f21ba4
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19947
Reviewed-by: David Neto <dneto@google.com>
2020-04-20 15:49:33 +00:00
dan sinclair
7b55da5f80 Add GLSL Fract support.
This CL adds Fract into the type determiner.

Bug: tint:5
Change-Id: I616d3259ca903b82339f49317f27966265c3f1d5
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19946
Reviewed-by: David Neto <dneto@google.com>
2020-04-20 15:49:07 +00:00
dan sinclair
f1c7f0c779 Add GLSL Ceil support.
This CL adds Ceil support to the type determiner

Bug: tint:5
Change-Id: Iba785dbea412cc94f9b0faa3e6d38f02453d5215
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19945
Reviewed-by: David Neto <dneto@google.com>
2020-04-20 15:48:56 +00:00
dan sinclair
d0f0edf8b6 Add GLSL Floor support.
This CL adds Floor into the type determination

Bug: tint:5
Change-Id: I2b9013e073458fbe9f8a9ff657582a715f91c480
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19944
Reviewed-by: David Neto <dneto@google.com>
2020-04-20 15:48:26 +00:00
dan sinclair
e9661fbe9b Add GLSL FSign support
This CL adds FSign to the type determination.

Bug: tint:5
Change-Id: I8e3a7e94f367c4aaa510e72f774097946382a968
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19943
Reviewed-by: David Neto <dneto@google.com>
2020-04-20 15:48:20 +00:00
dan sinclair
de50e5298d Add GLSL FAbs support
This CL adds FAbs to the type determinator.

Bug: tint:5
Change-Id: I9793f5d469eb5a70f2a024c325e098ed9ca8ea7c
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19942
Reviewed-by: David Neto <dneto@google.com>
2020-04-20 15:48:13 +00:00
dan sinclair
fa5a66f192 Add GLSL Trunc support.
This CL adds type determination for the Trunc method.

Bug: tint:5
Change-Id: I4f23dad7725f1f076fbbc7da8687de42a02cc482
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19941
Reviewed-by: David Neto <dneto@google.com>
2020-04-20 15:48:03 +00:00
dan sinclair
ca1723e990 Add GLSL RoundEven support
This CL adds support for the GLSL RoundEven command in type
determination.

Bug: tint:5
Change-Id: I956ea9532785a42fe51a24b5121ce47cfbc78242
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19940
Reviewed-by: David Neto <dneto@google.com>
2020-04-20 15:47:55 +00:00
dan sinclair
fd5d4ca16c [spirv-writer] Add preliminary support for GLSL methods
This CL adds the type determination and builder code to support
outputting the GLSL Round call.

Bug: tint:5
Change-Id: I84dadebaf19aee3361fb13b5f32ce1a9f1b0c421
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19923
Reviewed-by: David Neto <dneto@google.com>
2020-04-20 15:46:18 +00:00
Ryan Harrison
24730cde43 Rolling 3 dependencies
Roll third_party/glslang/ 4d2298bfd..3f4e5c456 (2 commits)

4d2298bfd7..3f4e5c4563

$ git log 4d2298bfd..3f4e5c456 --date=short --no-merges --format='%ad %ae %s'
2020-04-19 63069047+pmistryNV Add support for extension GL_ARB_shader_image_size (#2185)
2020-04-17 63069047+pmistryNV Add support for extension GL_ARB_shader_bit_encoding (#2183)

Roll third_party/shaderc/ 1926de063..a10a0b334 (2 commits)

1926de0638..a10a0b3349

$ git log 1926de063..a10a0b334 --date=short --no-merges --format='%ad %ae %s'
2020-04-14 rharrison Add warning signs about unsupported downloads (#1041)
2020-04-14 rharrison Rolling 5 dependencies and updating expectations (#1044)

Roll third_party/spirv-cross/ 54658d625..f38cbeb81 (4 commits)

54658d6255..f38cbeb814

$ git log 54658d625..f38cbeb81 --date=short --no-merges --format='%ad %ae %s'
2020-04-20 post MSL: Allow removing clip distance user varyings.
2020-04-18 godlike Reflection: Add specialization constant name
2020-04-15 cdavis MSL: Force disabled fragment builtins to have the right name.
2020-04-15 cdavis MSL: Only disable output variables in fragment shaders.

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

Change-Id: I59f8da3a7957f06ea99bd9f2f6bf73808b7e489e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/19951
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2020-04-20 15:38:50 +00:00
Corentin Wallez
5e088591ca Revert "Special-case GetDefaultQueue in the wire"
This reverts commit f93791ab62965964f413744bb73884dd6b9abc42.

Reason for revert: breaks gl_tests on roll.

Original change's description:
> Special-case GetDefaultQueue in the wire
> 
> This makes it so calling GetDefaultQueue always returns the same
> object. It required updating various WireTests to account for the
> additional wire calls.
> 
> Bug: dawn:22
> 
> Change-Id: I8c74374b7c732b8bb7d0490bbc740dee0d2dface
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/19726
> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
> Reviewed-by: Austin Eng <enga@chromium.org>
> Reviewed-by: Kai Ninomiya <kainino@chromium.org>

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

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: dawn:22
Change-Id: Id2f051b1d4be64a6e16ee8bbe998d72028660334
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/19980
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-04-20 15:33:20 +00:00
dan sinclair
d4d87edc85 Fixup merge conflict.
Change-Id: I4f04677b1c9a4a29157d2940352042802ef88979
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19960
Reviewed-by: David Neto <dneto@google.com>
2020-04-20 15:21:21 +00:00
dan sinclair
50714622b4 Cleanup IdentifierExpression API.
This CL renames the parts of the identifier to segments and then adds a
path() and name() methods to get the respective parts of the identifier.

Change-Id: I1a365df7cb83ac0dd3d6be9ec6ccb83bfc73dd91
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19762
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2020-04-20 14:21:00 +00:00
dan sinclair
b950e80a59 [type-determiner] Move ast::Module to constructor.
This CL moves the ast::Module to be provided to the type determiner
constructor so we can access it for things like the imports.

Change-Id: I110fffe669a8a007461bf84d30d85d70405e37be
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19761
Reviewed-by: David Neto <dneto@google.com>
2020-04-20 14:20:01 +00:00
dan sinclair
cd077b01a9 Add module to the type determiner test helper
This CL updates the type determiner test helper to have a ast::Module
and updates all tests to use the module. The tests have all be updated
to consistently use the type determiner provided by the helper as well.

Change-Id: If47a873c439e5a5019e21679cba957d4c762f4e6
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19780
Reviewed-by: David Neto <dneto@google.com>
2020-04-20 14:19:04 +00:00
dan sinclair
ccb52dc547 [type-determiner] Determine call parameter types.
This CL adds type determination for the call parameters.

Bug: tint:5
Change-Id: I488718bd7a4c1f2304a1c17554b8354d184dc159
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19760
Reviewed-by: David Neto <dneto@google.com>
2020-04-20 14:18:54 +00:00
dan sinclair
6ad9f5d1ed [spirv-writer] Move module to SPIR-V builder constructor
This CL moves the ast::Module to the constructor of the SPIR-V builder
class. This allows access to things like the ast::Import from the
builder class.

Bug: tint:5
Change-Id: I0d61b164c1274d006e124dde2cc11f41a2385fc5
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19922
Reviewed-by: David Neto <dneto@google.com>
2020-04-20 14:18:44 +00:00
dan sinclair
c954788b59 Move type methods to type class
This CL moves the checks for different types into the type class so it
can be used in both the type determinater and the SPIR-V builder.

Change-Id: I9142adaf5fc1d6048792645d7892f8d8900fcf59
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19921
Reviewed-by: David Neto <dneto@google.com>
2020-04-20 14:07:43 +00:00
dan sinclair
6866cb7677 [spirv-writer] Add initial loop support.
This CL adds the initial generation of a loop construct into the
spirv-writer. This does not support break or continue yet.

Bug: tint:5
Change-Id: I41f5d9b634a1a4120f880c4143feacc7e58e2147
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19620
Reviewed-by: David Neto <dneto@google.com>
2020-04-20 14:07:29 +00:00
Corentin Wallez
98334dfdf7 Deprecate BGLEntry::textureDimension in favor of viewDimension
Bug: dawn:22
Change-Id: Ibc58be789e3d3322fcd9cef92b1942c0e0b79090
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/19861
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
2020-04-20 08:10:10 +00:00
Yunchao He
99655bcf85 Add validation tests for resource usage tracking - 3
This patch adds validation tests for invisible and unused bindings.

The tests create bindings for compute, fragment and none stage. So,
only some bindings are visible for a particular render/compute pass.
In addition, some visible bindings in bind groups are not used by
pipeline. But resources of all bindings in bind groups (including
invisible/unused bindings) should be tracked, in order to identify
resource usage conflicts.

Bug: dawn:365

Change-Id: Ibb8d45a1a7b69891a17b4949147a16ada4ed6bd8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/18120
Commit-Queue: Yunchao He <yunchao.he@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-04-18 05:41:58 +00:00
Corentin Wallez
59382b7d3f Use python3 for all of Dawn's python scripts
Bug: dawn:389
Change-Id: I5034ab2791f0cca0b7690eae5f4d7f4e6efc4bd9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/19863
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-04-17 20:43:07 +00:00
Austin Eng
6d9e4f8076 Add ComparisonSampler binding type and validation tests
Bug: dawn:367
Change-Id: Iba1d3d03f6247a356b6f3fabfe7a7ba3c0753171
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/18423
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2020-04-17 20:14:17 +00:00
Austin Eng
d6a5431304 Add default Undefined sampler compare function
Bug: dawn:367
Change-Id: I27ee54b0117c90dd554690e4fabc939d679c4005
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/18422
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2020-04-17 19:32:07 +00:00
Corentin Wallez
f93791ab62 Special-case GetDefaultQueue in the wire
This makes it so calling GetDefaultQueue always returns the same
object. It required updating various WireTests to account for the
additional wire calls.

Bug: dawn:22

Change-Id: I8c74374b7c732b8bb7d0490bbc740dee0d2dface
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/19726
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
2020-04-17 17:09:07 +00:00
Corentin Wallez
8a437947a8 Introduce Device::GetDefaultQueue and deprecate CreateQueue
This makes all backends register the default queue at device
initialization time, so that the same queue is returned by
each call to GetDefaultQueue.

All usages of CreateQueue are replaced by GetDefaultQueue
except a couple ones that could use the queue initialized by
DawnTest::SetUp.

A deprecation warning mechanism is added so that users of Dawn
can now that they should upgrade their usage of the API. It also
comes with a backdoor so we can test that they are emitted.

New DeprecatedAPITests are added that will contain tests for
deprecated APIs, and will also check that deprecation warnings
are produced.

The special casing of GetDefaultQueue in the wire will be done
in a follow-up CL to ease the review. It happens to work through
the regular wire mechanisms at the moment but returns a different
object on each GetDefaultQueue call.

Bug: dawn:22

Change-Id: I78dc1fa474769674278d30040e8d05c658b88360
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/19724
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-04-17 16:45:17 +00:00
Corentin Wallez
9f5a1c5141 BUILD.gn: Remove leftover temporary test target.
This target was forgotten in the previous cleanup.

Bug: chromium:1064305
Change-Id: Ibf35df4393927ac8cc08d4965b8b8098c36e4bd3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/19860
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-04-17 16:05:09 +00:00
David Neto
340a51e787 Add required overrides for virtual destructors
Fixes build on macOS

TBR=rharrison@google.com

Change-Id: I22e463b76074b499187a472649c46ef1b17c77cd
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19880
Reviewed-by: David Neto <dneto@google.com>
2020-04-17 15:52:49 +00:00
Ryan Harrison
0a196c13c8 Adding support for testing BUILD.gn
BUG=tint:50

Change-Id: Ie19a1af6a97a49a67dcc7474991c960b986ddebe
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19782
Reviewed-by: David Neto <dneto@google.com>
2020-04-17 13:18:20 +00:00
Corentin Wallez
193316c887 Rolling 2 dependencies
Roll third_party/vulkan-loader/ 3f7e3cbf3..50eaecd72 (2 commits)

3f7e3cbf33..50eaecd721

$ git log 3f7e3cbf3..50eaecd72 --date=short --no-merges --format='%ad %ae %s'
2020-04-16 cwallez BUILD.gn: Generate libvulkan.so.1 on Linux
2020-04-15 charles tests: fix non-msvc windows test building

Roll third_party/vulkan-validation-layers/ 1533266ea..7e1fb3d60 (8 commits)

1533266eac..7e1fb3d602

$ git log 1533266ea..7e1fb3d60 --date=short --no-merges --format='%ad %ae %s'
2020-04-16 souravp tests: Add new tests for VkRayTracingPipelineCreateInfo
2020-04-10 souravp layers: RayTracingPipelineCreateInfo validation
2020-04-16 s.fricke tests: Fixes crashing some Android devices
2020-04-12 git layers: fix logic error in semaphore validation
2020-04-06 s.fricke layers: Add full Format Feature tracking support
2020-04-10 tony gpu: Fix typos in debug_printf.md
2020-04-14 petr_kraus layers: Add missing skip handling to commands
2020-04-16 cwallez Fix build-gn/generate_vulkan_layers_json.py on Mac

TBR=enga@chromium.org
Bug: dawn:388

Created with:
  roll-dep third_party/vulkan-loader third_party/vulkan-validation-layers

Change-Id: I3ea9e87d231be5c15e9f74de4df7830edada3776
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/19840
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-04-17 09:18:35 +00:00
Corentin Wallez
df3e9ba5e3 Roll third_party/swiftshader/ 63ed0e445..d25ce8725 (48 commits)
https://swiftshader.googlesource.com/SwiftShader/+log/63ed0e445fa5..d25ce8725224

$ git log 63ed0e445..d25ce8725 --date=short --no-merges --format='%ad %ae %s'
2020-04-15 digit Fix LLVM-based Arm64 build.
2020-04-16 bclayton CMakeLists: Enabled more clang warnings.
2020-04-16 bclayton Device/Blitter: Initialize filter3D fields
2020-04-15 digit Fuchsia: Add LLVM 10.0 configuration headers.
2020-04-16 amaiorano CMake: fix PowerVR_Examples build
2020-04-16 amaiorano Don't fail build if Vulkan headers are different
2020-04-15 amaiorano CMake: fix add_subdirectory(SwiftShader) when CMAKE_BUILD_TYPE is set in parent project
2020-04-15 amaiorano CMake: make submodule initialization work for add_subdirectory(SwiftShader)
2020-04-15 amaiorano CMake: fix add_subdirectory(SwiftShader)
2020-04-15 amaiorano CMake: use directory variables consistently
2020-04-15 amaiorano CMake: make root compile options and link libraries private
2020-04-15 bclayton VkSemaphore: Unlock/Lock the mutex outside the blocking_call.
2020-04-16 bclayton Regres: Include a better error message when git add fails.
2020-04-16 bclayton Regres: Avoid dereferencing a nil on process timeout.
2020-04-15 bclayton Make memoryPageSize() functions thread-safe.
2020-04-14 bclayton Vulkan: Move SpecializationInfo to own file.
2020-04-16 bclayton Fix chrome autorollers
2020-04-04 bclayton Reimplement LRUCache, fold away LRUSnapshotCache, add tests.
2020-04-14 amaiorano CMake: split out turbo-cov target
2020-04-14 amaiorano CMake: split out test and benchmark targets
2020-04-08 bclayton VkPipelineCache: Do not publically expose internal mutexes
2020-04-14 bclayton CMake: Fix build when building with `SWIFTSHADER_ENABLE_VULKAN_DEBUGGER`
2020-04-14 sugoi Fix fragments depth values not being clamped
2020-04-08 amaiorano CMake: split out Vulkan sources into separate CMakeLists
2020-04-13 bclayton Device: Rename RoutineCacheT to RoutineCache
2020-04-14 bclayton Device: Don't inherit [Vertex,Setup,Pixel]Processor.
2019-09-09 digit [vulkan] Implement VK_FUCHSIA_external_memory extension.
2020-04-09 capn Reuse Store logic for Modf and Frexp output parameters
2020-04-09 capn Separate Operand store logic from EmitStore()
2020-04-09 capn Only store component count in Operand
2020-04-14 capn Rename size/sizeInComponents to componentCount
2020-04-09 capn Use the type and result ID helpers
2020-04-08 capn Obtain type ID from instruction
2020-04-08 capn Add helper methods for obtaining type and result ID
2020-04-11 bclayton LLVMReactor: Replace deprecated CreateCall overload
2019-11-19 digit [cmake] Add support for CMAKE_SYSTEM_NAME == "Fuchsia"
2020-04-08 capn Rename GenericValue to Operand
2020-04-09 bclayton CMake: Fix linux build with SWIFTSHADER_BUILD_PVR
2020-04-09 bclayton Vulkan/Debug: Fix clang-10 warning
2020-04-09 bclayton third_party/cppdap: Roll forward to 4dcca577
2020-04-08 cwallez Clamp _SNORM formats to -1.0
2020-04-08 sugoi Remove debug only code limiting the number of primitives
2020-04-08 bclayton Regres: Post coverage results even if the test lists have not changed.
2020-04-07 amaiorano CMake: split out all src/OpenGL targets into their own CMakeLists
2020-04-06 amaiorano CMake: split out SwiftShader GL deps into separate files
2020-04-06 amaiorano CMake: clean up dependencies
2020-04-06 bclayton Add SystemBenchmarks.
2020-04-07 bclayton VkCommandBuffer: Remove static Cast() method

Created with:
  roll-dep third_party/swiftshader

TBR=enga@chromium.org
Bug: dawn:283
Change-Id: I5326bced6a4863ae780cafdbaf06060ef55aaf27
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/19841
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-04-17 09:17:55 +00:00
Corentin Wallez
9c79dc050e Vulkan: Use VK_LAYER_KHRONOS_validation
This layer replaces VK_LAYER_LUNARG_standard_validation that is now
deprecated.

Bug: dawn:388
Change-Id: I488c175b997434a8e22deecfba3fc89495969cbc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/19722
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-04-17 08:24:45 +00:00
Corentin Wallez
0925720ecb Add the Vulkan loader as an optional dependency and use it on Mac
On macOS we can't rely on having the Vulkan loader installed in the
system. So we add the Vulkan loader as an optional dependency of Dawn
and use it on macOS when building Dawn in standalone with Vulkan
support.

Usage of building our own loader might broaden if the loader gains
features that are useful on other OSes. For example the ability to pass
in the "root ICD" entrypoint to the loader so we can have both
Swiftshader and the system driver at the same time.

Bug: dawn:388

Change-Id: I7ade4961cce0463c66846ad17aebf95224f1afcc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/19723
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-04-17 08:22:25 +00:00
Brandon Jones
53f694b34a Fix ASAN violation when a heap outlives the ResidencyManager
It's possible for a heap in the residency LRU to outlive the
ResidencyManager. When this happens, some heap in the LRU will be
referencing the LRU head node. On destruction, the outstanding heap
will attempt to access the LRU head node after the memory has been
freed. This commit removes the LinkedList head node from the list
within the LinkedList destructor to fix the bug.

Bug: dawn:387
Change-Id: I13617d1b4e464e1541f989f31caecd4305037019
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/19581
Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Brandon Jones <brandon1.jones@intel.com>
2020-04-16 23:59:03 +00:00
Brandon Jones
82ae680ccc Residency Bug: Always Attempt To Evict To Under Budget
In the case that a previous submit to the GPU required Dawn to exceed
the residency budget, Dawn must attempt to get back under budget the
next time EnsureCanMakeResident is called. This CL fixes a bug where we
only evicted the current size needed to be resident, which would
incorrectly raise the budget when a submit to the GPU required us to
exceed the budget.

Bug: dawn:193
Change-Id: I04649056e9eecce1fc6b5759c889b52a4f1b4594
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/19440
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Brandon Jones <brandon1.jones@intel.com>
2020-04-16 23:52:23 +00:00
Austin Eng
3aa5be9749 Print the failing statement in ASSERT_DEVICE_ERROR
Makes it easier to track where and why a test failed.

Bug: none
Change-Id: Icdccde97db68c32c35af6c044a3eacd4d4978b61
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/19701
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2020-04-16 21:36:33 +00:00
Bryan Bernhart
319672791e D3D12: Remove ComPtr from d3d12::Device::GetD3D12Device()
Accessing the d3d device using COM needlessly
refcounts. This is a particular issue in areas
that frequently access the d3d device like
Populate().

BUG=dawn:155

Change-Id: I24e83093623afd02fa592d8ec0c404b4571c374b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/19703
Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Bryan Bernhart <bryan.bernhart@intel.com>
2020-04-16 18:59:53 +00:00
Corentin Wallez
3741f7373c Factor compilation of ~MockProcTable in mock_webgpu.cpp
GMock generates a lot of code in the destuctor of mock classes, so
factor that in mock_webgpu.cpp instead of compiling the code once for
each file including mock_webgpu.h.

Bug: None
Change-Id: I2b5984e911020eb33457bde9c6a45beaa93b3071
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/19725
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-04-16 18:08:23 +00:00
Corentin Wallez
955f8a37cc Rolling 2 dependencies
Also adds build_overrides for [vulkan_]use_x11 that are now needed for
these deps.

Roll third_party/vulkan-headers/ d287523f4..e01f13e1f (20 commits)

d287523f48..e01f13e1f7

$ git log d287523f4..e01f13e1f --date=short --no-merges --format='%ad %ae %s'
2020-04-07 oddhack Update for Vulkan-Docs 1.2.137
2020-04-06 devrel Update README.md with warning of pending header changes
2020-03-24 oddhack Update for Vulkan-Docs 1.2.136
2020-03-17 oddhack New include file with provisional extension interfaces (those interfaces not aliased by promoted-from APIs, at least).
2020-03-17 oddhack Update for Vulkan-Docs 1.2.135
2020-03-06 oddhack Update for Vulkan-Docs 1.2.134
2020-02-15 oddhack Update for Vulkan-Docs 1.2.133
2020-01-21 oddhack Update for Vulkan-Docs 1.2.132
2020-01-14 oddhack Update for Vulkan-Docs 1.2.131
2019-11-14 flibitijibibo GN: Make PLATFORM_XCB optional, based on a user-defined variable.
2019-12-09 oddhack Update for Vulkan-Docs 1.1.130
2019-11-25 oddhack Update for Vulkan-Docs 1.1.129
2019-11-21 mark build: Clarify Windows build instructions
2019-11-18 oddhack Update for Vulkan-Docs 1.1.128
2019-11-05 jmadill GN: Add support for Google Games Platform.
2019-10-25 8729214+jonahryandavis build: BUILD.gn missing defines for MacOS
2019-11-03 oddhack Update for Vulkan-Docs 1.1.127
2019-10-28 shannon vulkan: Fix typo for `operator==` in `vulkan.hpp`
2019-10-25 shannon vulkan: Update `vulkan.hpp` for VS2015 VT fix
2019-10-21 oddhack Update for Vulkan-Docs 1.1.126

Roll third_party/vulkan-validation-layers/ 237d818e8..1533266ea (553 commits)

237d818e81..1533266eac

$ git log 237d818e8..1533266ea --date=short --no-merges --format='%ad %ae %s'
2020-04-08 lionel.g.landwerlin Validate blending on color attachment without blending support
2020-03-03 mark scripts: Some validation-stats cleanup and update
2020-04-09 petr_kraus tests: Remove mock workarounds for vkAcquire
2020-04-09 s.fricke layers: Update AHB to Android Q and better logging
2020-04-14 mark test: Temporarily disable AHBCreateImageView test
2020-04-13 jzulauf layers: Add missing WaitSemaphores (KHR/not) entry
2020-04-13 petr_kraus layers: Add missing instance chassis locks
2020-04-06 s.fricke tests: Add support for VUID 02261 and 02262
2020-04-06 s.fricke layers: Add support for VUID 02261 and 02262
2020-04-06 s.fricke layers: Fix general external AHB tracking
2020-04-09 peter.griffin layers: Silence expected GCC warning
2020-04-09 rgarcia layers: Take separate stencil usage flags into account
2020-04-13 mark practices: Fix typo in message output
2020-04-10 mark practices: Avoid VertexInputState checks when using mesh shdrs
2020-04-10 mark tests: Revert "Remove MockICD workarounds in instanceless"
2020-04-10 charles docs: Suggest disabling validation with debug printf
2020-04-09 shannon build: Update known-good files for 1.2.137 header
2020-04-10 mark scripts: Allow clean-repo to work on empty directories
2020-04-10 mark tests: Fix rebasing error in multi-instance test
2020-04-09 mark corechecks: Stringstream can take strings natively
2020-04-09 mark layers: Removed redundant helper function
2020-04-09 mark corechecks: Normalize stringstream message output
2020-04-09 mark layers: Update FormatHandle to use stringstream
2020-04-09 mark corechecks: Fixed bad handle formats in descriptor_sets
2020-04-05 petr_kraus tests: Add multiple instance creation test
2020-04-08 petr_kraus tests: Remove MockICD workarounds in instanceless
2020-04-07 petr_kraus tests: Simplify device extension filtering
2020-04-07 petr_kraus tests: Expect VK_INCOMPLETE from pd enumeration
2020-04-04 petr_kraus tests: Remove commented code and issues
2020-03-31 petr_kraus tests: Add some instance checks
2020-04-02 petr_kraus tests: Refactor the test framework
2020-04-10 lionel.g.landwerlin Add validation for new performance query reset VUID 02863
2020-02-18 lionel.g.landwerlin Rework performance query validation
2020-02-18 lionel.g.landwerlin layers: record reset queries in state tracker
2020-04-10 lionel.g.landwerlin tests: fix incorrect/missing reset of performance queries
2020-04-09 mikes scripts: update_deps.py always pass -A on Windows
2020-04-09 mark scripts: Fix --clean-repo for read-only files
2020-04-07 mark build: Add blurb for using update_deps to change architectures
2020-04-08 s.fricke tests: Add disjoint bindImageMemory VUID
2020-04-08 s.fricke tests: Move tests to BindInvalidMemoryYcbcr
2020-04-08 s.fricke layers: Add disjoint bindImageMemory VUID
2020-04-09 s.fricke Add Documentation about writing tests
2020-04-09 mikes scripts: BP skip vkEnumerateInstanceVersion
2020-04-07 tony layers: Don't remove container contents during iteration
2020-04-07 mikes layers: Fix operator= recursion
2020-04-06 mikes layers: GCC -Wignored-qualifiers warning
2020-04-06 mikes layers: GCC -Wdeprecated-copy warning
2020-04-06 s.fricke tests: Add PhysicalDeviceFormatProperties2 for Device Profile API
2020-04-03 tony tests: Fix extraneous errors
2020-04-03 tony layers: Fix error message
(...)
2019-11-01 camden CMake: Add vklayertests_best_practices.cpp to CMake
2019-11-01 camden layers: Remove DrawCmd perf warning from Buf Val
2019-10-16 camden layers: Add DrawCmd perf warning to Best Practices
2019-11-12 mark tests: Verify reset/use of qpool in different command buffers
2019-11-13 mark corechecks: Enable querystate tracking across multiple submitInfos
2019-11-12 tony tests: Add mechanism to deal with duplicate errors
2019-11-11 mark tests: Add secondary CB VkSubmitInto validation check
2019-11-11 mark corechecks: Add secondary CB VU check
2019-11-11 mark corechecks: Fix propagation of skip in CB state validation
2019-11-12 mark build: Add VUID coverage text file to AppVeyor artifacts
2019-10-28 pdaniell tests: Add tests for VK_KHR_separate_depth_stencil_layouts
2019-10-16 PDANIELL layers: Add support for VK_KHR_separate_depth_stencil_layouts
2019-11-05 shannon build: Update known-good for 1.1.127 header
2019-11-04 jbolz layers: Update ValidateShaderStageInputOutputLimits to new spec rules
2019-11-01 mark cmake: Restore creation of standard validation json file
2019-08-21 jmacnak tests: Add RT shader group tests
2019-08-21 jmacnak layers: Add RT shader group validation
2019-10-30 mikes tests: Add macOS loader filename
2019-10-25 locke tests: Swapchain image layout
2019-10-28 locke layers: Swapchain pluarl bound_images
2019-09-27 tony gpu: Add more positive tests
2019-10-29 mark tests: Remove android limits workaround
2019-10-28 mark tests: Allow hw limits to override baked-in test GL limits
2019-10-28 bob Android: Make tests more reliable
2019-10-25 shannon build: Update known-good commits for SDK 126
2019-10-09 jeremy layers: Fix attachment unused false positive
2019-10-23 mark tests: Exclude GetomInputOutputComps limit test from Android
2019-10-23 mark tests: Fix filter key for shaderc failure messages
2019-10-16 camden layers: best_practices-Fix MemoryFree Exception
2019-10-16 camden layers: Initialize numMemObjects in BP
2019-08-16 jeremy layers: Validate specialization constants
2019-10-11 jeremy build: Update glslang
2019-10-24 mark layers: Removed obsolete layer-specific readme file
2019-10-24 mark docs: Add layer configuration doc, shared with the SDK
2019-10-23 jbolz tests: Add tests for externsync descriptorset updates
2019-10-23 jbolz layers: Relax UPDATE_AFTER_BIND externsync rules in ThreadSafety
2019-10-23 bob tests: Don't filter logcat messages
2019-10-21 shannon build: Update known-good for 1.1.126 header
2019-10-22 jbolz tests: Test CmdTraceRays with no descriptor set bound
2019-10-22 jbolz layers: Add PreCallValidateCmdTraceRaysNV
2019-10-07 locke tests: Catch the error in QueueSubmit
2019-09-30 locke layers: Check in QueueSubmit
2019-09-26 locke layers: Validate DescriptorSet Binding data
2019-10-20 jbolz tests: Add tests for ValidateEventStageMask
2019-10-20 jbolz layers: Move event/query Updates to PostCallRecordQueueSubmit
2019-09-26 jessehall layers: Check exts against required core versions
2019-09-25 jessehall layers: Add VK_KHR_spirv_1_4 validation
2019-10-17 mikes build: Add missing X11 option to GN overrides
2019-10-17 tobine build:Add VK_USE_PLATFORM_XLIB_KHR for x11
2019-10-03 emanuele.dallalonga corechecks: Fix ValidateImageBarrierAttachment resource search

Created with:
  roll-dep third_party/vulkan-headers third_party/vulkan-validation-layers

Bug: dawn:388

Change-Id: I5cefd0511af937897291644acb266f20efec66cc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/19721
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-04-16 17:24:16 +00:00
Corentin Wallez
f941205370 Use new gmock MOCK_FUNCTION macro.
Bug: None
Change-Id: If436fbf5c2392051caeadfc4a7482544d565b597
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/19720
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-04-16 16:39:06 +00:00
dan sinclair
366b74c364 [spirv-writer] Add binary multiplication.
This CL adds binary multiplication generation to the SPIR-V writer.

Bug: tint:5
Change-Id: I668d24035e947c51a9737549fd0841a4e8af1331
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19700
Reviewed-by: David Neto <dneto@google.com>
2020-04-16 14:14:11 +00:00
Corentin Wallez
d3bbcc3334 Correctly support setSubData of 0 bytes.
DynamicUploader/RingBuffer were incorrectly assuming that they could not
get empty allocation requests. Fix this and add a test.

The test also surfaced a bug in the Metal backend where the command
recording context could be left with a blit encoder open that was not
properly handled on device shutdown.

Bug: chromium:1069076
Change-Id: I9793b37142bd509254ce2894fa9f6208e9a68048
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/19291
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
2020-04-16 09:51:26 +00:00
Ryan Harrison
460345d993 Add support for WGSL writing to BUILD.gn
BUG=tint:49

Change-Id: I4473176d4177a719b7b2659f765b6b467ac43c84
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19682
Reviewed-by: dan sinclair <dsinclair@google.com>
2020-04-15 20:54:10 +00:00
Ryan Harrison
0caab67e6e Add support for WGSL reading to BUILD.gn
BUG=tint:47

Change-Id: Ic50421f4dc712c614cf5783027ba273b53b2bd83
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19681
Reviewed-by: dan sinclair <dsinclair@google.com>
2020-04-15 20:47:55 +00:00
Ryan Harrison
2b45a52cdf Add support for SPIRV writing to BUILD.gn
BUG=tint:48

Change-Id: I6b92bb372b783ad4498fdc4817d0893851b0bb90
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19680
Reviewed-by: dan sinclair <dsinclair@google.com>
2020-04-15 20:37:02 +00:00