This is a modified version of the HLSL writer.
Basic types, arrays, entry points, reserved keywords, uniforms,
builtin uniforms, structs, some builtin functions, zero initialization
are implemented. Textures, SSBOs and storage textures in particular are
unimplemented. All the unit tests "pass", but the output is not correct
in many cases.
triangle.wgsl outputs correct vertex and fragment shaders that pass
GLSL validation via glslang. compute_boids.wgsl outputs a valid but not
correct compute shader.
Change-Id: I96c7aaf60cf2d4237e45d732e5f51b345aea0552
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/57780
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
An assertion failure had been injected to check that black box fuzzing
is working, but as ClusterFuzz runs a release mode build this was not
triggering. This change turns the assertion failure into an abort. Once
it has been established that the abort is triggered by the black box
fuzzers, it should be removed.
Bug: https://crbug.com/1246587
Change-Id: I5afcea97132e5a7f13df4ba353121deccc901e60
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/65901
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Alastair Donaldson <afdx@google.com>
GLSLstd450SAbs expects a *signed* integer.
abs() of an unsigned number is now a no-op.
Fixes WebGPU CTS tests:
webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:*
Bug: tint:1194
Change-Id: I65c5e9f2f03aac0b788b9ba88c383cbec136d7c6
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/65620
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Kokoro: Ben Clayton <bclayton@chromium.org>
Reviewed-by: David Neto <dneto@google.com>
An expression that is inside an if-statement condition does not have a
"current block", which is what we were using to see if the usage was
inside a continuing block. Use the current statement to find the
containing block instead.
Fixed: chromium:1251664
Change-Id: Icc808ca1cf6a1b51757da8303901fa5ecb693e83
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/65520
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
MSL has a limit on the number of threadgroup memory arguments, so use
a struct to support an arbitrary number of workgroup variables.
This commit introduces a `State` object to this transform, which is
used to track which structs have been cloned eagerly, in order to
avoid duplicating them.
Bug: tint:938
Change-Id: Ia467db186e176a08f160455eab5fd3b3662f56b8
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/65360
Auto-Submit: James Price <jrprice@google.com>
Kokoro: James Price <jrprice@google.com>
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
177a4faf0a..b0291fd966
$ git log 177a4faf0..b0291fd96 --date=short --no-merges --format='%ad %ae %s'
2021-09-24 hao.x.li Implement api,validation,state,device_mismatched: Part Ⅰ (#741)
2021-09-22 kainino empty commit
2021-09-23 jiawei.shao Use vertex-only pipelines when initializing depth aspects (#754)
2021-09-21 rockot require indirect-first-instance for indirect draws with firstInstance > 0 (#752)
2021-09-20 kainino Add a NumberRepr class that represents f/i/u 64/32/16/8 (#747)
2021-09-17 yunchao.he Fix a bug about max color attachment (#749)
2021-09-14 yunchao.he Test buffer related validations for texture copies (#690)
2021-09-14 jiawei.shao Add operation tests on T2T copy with multisampled color textures (#739)
2021-09-13 enga Test compute shader variables are zero initialized (#743)
2021-09-13 enga Update default limits to match the spec (#745)
2021-09-14 hao.x.li Update destinationOffset alignment to 256 in resolveQuerySet tests (#742)
2021-09-10 enga Add an option to automatically batch large lists of subcases (#733)
2021-09-10 9856269+sarahM0 wgsl abs() built-in function execution test (#730)
2021-09-10 shaobo.yan Remove CopyImageBitmapToTexture (#738)
2021-09-09 9856269+sarahM0 wgsl type parameter generator (#731)
2021-09-10 hello Fix tools/deno (#734)
2021-09-09 kvarkus Include tools in the deploy (#735)
2021-09-09 bajones Update all uses of 'gpupresent' to 'webgpu' (#740)
2021-09-01 9856269+sarahM0 add noop unique id (#729)
2021-08-31 hao.x.li Implement api,validation,state,device_mismatched: helper functions (#717)
2021-08-27 kainino Test postMessage on ArrayBuffer from getMappedRange (#728)
2021-08-27 rockot Introduce expectGPUBufferRepeatsSingleValue (#723)
2021-08-27 rockot some stress tests for shaders and render passes (#722)
2021-08-27 kainino fix async race condition in expectCompileResult (#726)
2021-08-26 sarahmashay remove accidently added file
2021-08-25 84498356+jzm-intel Implement veretx_access validation test: Part 1 (#698)
2021-08-21 sarahmashay wgsl cts for builtin fucntions
2021-08-20 yunchao.he Revise validation tests for depth/stencil formats for copies (#719)
2021-08-19 yunchao.he Validate texture format for copies (#691)
2021-08-19 shrekshao Reftests expand with formats, write canvas methods, and compositingAlphaMode (#696)
2021-08-19 tojiro Remove template that wasn't really helping anyone
2021-08-18 tojiro Addressing more feedback
2021-08-18 tojiro Refactored as suggested by Kai
2021-08-12 tojiro Expanded tests to render passes and render bundles
2021-08-11 tojiro More tests and working on other pipeline types.
2021-08-11 tojiro Added three more tests and fixed issues
2021-07-01 tojiro Implementing preliminary api,operation,command_buffer,programmable,state_tracking:* tests
2021-08-18 shaobo.yan Pipeline_layout_compat: Add buffer and sampler binding equivalent checks (#701)
2021-08-17 kainino Constrain type to guard against future bugs like #716 (#718)
2021-08-17 yunchao.he Fix a bug in api/validation/image_copy/image_copy.ts (#716)
2021-08-17 hao.x.li api,validation,encoding,programmable,pipeline_bind_group_compat plan (#697)
2021-08-17 jiawei.shao Add operation tests on copyTextureToTexture with depth/stencil - Part II (#706)
2021-08-13 tojiro Change depth/stencil sample type to 'depth'
2021-08-14 mehmetoguzderin Fix project name (#714)
2021-08-14 mehmetoguzderin Use split account for previews (#712)
2021-08-13 rockot Implement some initial stress tests (#709)
2021-08-12 bajones Updating deprecated TextureUsage flags (#710)
2021-08-12 shrekshao Remove some alpha blending factor validation (#708)
2021-08-12 kainino re-hide extra stacks from different subcases, fix bug
2021-08-12 kainino Undo hiding of extra lines of message, and don't hide extra logs from different cases
(...)
2021-05-12 tojiro Style fix suggested by Kai
2021-05-12 kainino Use more subcases (#561)
2021-05-12 kainino Document cases/subcases and ParamsBuilder better (#562)
2021-05-12 bajones Review createBindGroupLayout spec (#559)
2021-05-12 shrekshao Add DrawIndirect test (#558)
2021-05-11 kainino Fix sampledTextureBindingTypeInfo (#560)
2021-05-11 shaobo.yan Expand operation tests for copyToTexture,ImageBitmap (#545)
2021-05-06 kainino api,operation,buffers,map: describe, clean notes, add cases (#552)
2021-05-05 bajones Reviewed createBindGroup spec (#554)
2021-05-05 bajones Added some CompilationInfo tests. (#548)
2021-05-04 kainino gen_wpt_cts_html: always split down to individual tests (#544)
2021-05-04 kbrussel Add compute,basic,large_dispatch test. (#555)
2021-05-04 enga Update/cleanup map_oom.spec.ts (#551)
2021-05-04 kainino docs: nits, add pointer to a good reference test (#550)
2021-05-04 rharrison Update variable_and_const.spec.ts shader to match current WGSL spec (#553)
2021-04-29 kainino doc: make heading clearer
2021-04-29 kainino small docs updates
2021-04-29 mehmetoguzderin Reduce expire field to 10 days (#547)
2021-04-28 enga Fix WGSL storage_buffer->storage in by_sampling.ts (#546)
2021-04-28 kainino operation,vertex_state: add todo (#541)
2021-04-26 hao.x.li Add validation tests for occlusion query (#539)
2021-04-16 kainino attachment -> view
2021-04-16 kainino blending renames, remove wrong test plan
2021-04-16 kainino storeOp: required
2021-04-16 kainino computeStage -> compute
2021-04-22 jrprice Use new WGSL entry point IO syntax (#543)
2021-04-21 kainino Replace fence tests with new onSubmittedWorkDone tests (#536)
2021-04-21 corentin Add tests for GCing GPUBuffer before their mappings. (#542)
2021-04-20 kainino Update bindings API usage (#538)
2021-04-19 jrprice Replace builtin(position) with builtin(frag_coord) (#540)
2021-04-16 shrekshao Update WGSL const -> let and remove '-> void' (#537)
2021-04-16 alanbaker Fix some storage buffers (#534)
2021-04-14 kainino add deprecation linter, but disabled for now
2021-04-14 kainino Suppress deprecation warnings
2021-04-14 kainino replace incidental usages of fence with onSubmittedWorkDone
2021-04-14 kainino TODOs for new binding structure
2021-04-14 kainino update DefaultLimits
2021-04-14 kainino rename extension->feature in capability_info
2021-04-14 kainino extensions->features pt 1
2021-04-14 kainino fix easy deprecations
2021-04-14 kainino roll types, fixes for Iterable color/extent/origin (#532)
2021-04-13 kainino roll types (#531)
2021-04-13 kainino Try again to get space at the top of the PR template
2021-04-13 corentin Update README.md (#530)
2021-04-14 hao.x.li Add selectDeviceForQueryTypeOrSkipTestCase to gpu_test.ts (#529)
2021-04-12 yunchao.he Add tests for mipmap with various formats (#528)
2021-04-09 yunchao.he Fix bugs for texture creation validation (#527)
2021-04-08 enga Add tests for GPUBlendComponent (#526)
2021-04-08 kainino Use <hr> because github won't keep the extra blank lines above the ---
2021-04-08 kainino Much more verbose checklists (#525)
Created with:
roll-dep third_party/gpuweb-cts
Change-Id: I8d82c7299f74140b1ada627c5b1161f8e12c96b1
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/65280
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Adds a return statement in the body of a randomly-chosen function.
The return value is a randomly-chosen identifier or literal from
the WGSL shader.
Fixes: tint:1115.
Change-Id: Icdc4ff669cda343244e158ce791b4085fd52f7b9
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/61781
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Alastair Donaldson <afdx@google.com>
Commit-Queue: Alastair Donaldson <afdx@google.com>
The overridable constants type can only be deducted from shader, those
passed into `record<USVString, GPUPipelineConstantValue> constants;`
are all double. In dawn pipeline (vulkan backend for exmaple) we need to
do type cast for these double values and passed in to native API
Bug: tint:1155, dawn:1041
Change-Id: I3abb43e61d63f054402ca8d3280b44a833a5f67e
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/64601
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Changes the spirv-tools fuzzer targets so that the target back-end
language (HLSL, MSL, SPIR-V or WGSL) is no longer passed as a command
line argument, but instead baked into the fuzzer's binary. This avoids
a problem whereby an OSS-Fuzz bug reproducer does not use the required
back-end command line argument.
Change-Id: I69970dfa7f133f8e310ec063c9b6869bd774e7d3
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/63343
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Alastair Donaldson <afdx@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
When preparing a corpus of SPIR-V shaders for fuzzing, spirv-as is
invoked repeatedly. It could be that a bug in spirv-as leads to
conversion failing for some of the shaders. This should not prevent the
overall corpus from being generated, as long as the number of overall
failures is reasonably small. This change adds some tolerance for such
failures.
Change-Id: I77750fdeab15a252201bff33e952e1bd44c42331
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/64543
Auto-Submit: Alastair Donaldson <afdx@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Alastair Donaldson <afdx@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
This makes it possible to build the fuzzer in Chromium's asan builder
group by having it depend on the tint fuzzers group, and means that the
logic for when particular fuzz targets are built remains encapsulated in
the tint fuzzer build rules.
Change-Id: Ic8d6131ccf1759a25fc3d736ae507cd173931616
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/64181
Auto-Submit: Alastair Donaldson <afdx@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Use a threadgroup memory argument for any workgroup variable that
contains a matrix.
The generator now provides a list of threadgroup memory arguments for
each entry point, so that the runtime knows how many bytes to allocate
for each argument.
Bug: tint:938
Change-Id: Ia4af33cd6a44c4f74258793443eb737c2931f5eb
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/64042
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: James Price <jrprice@google.com>
For HLSL, use the new NumWorkgroupsFromUniform transform, and expose
the binding point to use for the generated uniform as a backend
option.
The MSL mapping is trivial, and it was already implemented for WGSL
and SPIR-V.
Bug: tint:752
Change-Id: I4bd37b5d26181629d72b152fe064a60caf8ecdc5
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/63962
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
This transform scans entry points for struct parameters that contain
the num_workgroups builtin, and replace accesses to these members with
a value loaded from a uniform buffer.
This will be used by the HLSL backend to implement the num_workgroups
builtin.
Bug: tint:752
Change-Id: Iefab3b14af8a08a6135348fded368a06d932e915
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/63961
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>