Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] main from gpuweb:main #11

Merged
merged 166 commits into from
Nov 1, 2023
Merged

[pull] main from gpuweb:main #11

merged 166 commits into from
Nov 1, 2023

Conversation

pull[bot]
Copy link

@pull pull bot commented Aug 22, 2023

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

This PR add execution tests for bitcast built-in from and to f16 types.

Issue: #1248, #1609
@pull pull bot added the ⤵️ pull label Aug 22, 2023
dneto0 and others added 28 commits August 22, 2023 16:37
It's not guaranteed that the -0.0 value will survive once
it is stored in a Scalar object

Issue: #2901
* Prevent details toggle if user is selecting text
* select all on click
This refactors the existing code to have a clearer separation from the
non-AF test running code, and sets up for implementing vector support.

Issue #1626
* Remove orientation from several texture copy tests

The orientation argument for these tests was copied from tests which
use an ImageBitmap source. Because CreateImageBitmap has an
imageOrientation option it made sense to test against all variants
of it. However, other tests, such as those that consume ImageData
directly, don't have any native mechanism for Y-flipping the source.
The data could be generated Y-flipped, but that doesn't increase
coverage of any implementation features. Despite not flipping the
source orientation, however, the test was still expected the data
to be flipped.

By removing this argument and no longer testing for flipped source
data, these tests all begin passing with no loss of platform coverage.

Bug: dawn:2017

* Lint fix
This is run by `npm test`, and should catch cache file collision issues which have caused reverts in the past.
wgsl: Add execution tests for AF negation (#2909)

    This refactors the existing code to have a clearer separation from the
    non-AF test running code, and sets up for implementing vector support.

    Issue #1626

This PR fixes the issues with cache collisions that caused the initial
revert
This may be a temporary change if copying compressed textures get
removed from core and moved to a feature.
This PR add execution tests for f16 built-in clamp.

Issue: #1248
This PR add execution tests for f16 built-in sign and step.

Issue: #1248, #2583, #2529
…2922)

Matrix addition will be covered in future PRs.

Issue #1626

Co-authored-by: jzm-intel <[email protected]>
This PR make frexp function in util/math.ts handle f16 and f64 as well as f32, and add f16 execution test for built-in frexp.

Issue: #1248, #2587
…float32-filterable formats. (#2915)

* Adds magFilter op tests

* Adds inital minFilter tests

* Adds remaining sampling tests

* Fix formatting issue

* Redo min/magFilter tests for mirror, and adds more doc.
And fix state tracking so that subcases are actually marked skipped in
the logger
Add missing entry to `listing_meta.json`
@Builtin(vertex_index) and @buildin(instance_index) each
take an attribute in compat mode
zoddicus and others added 29 commits October 23, 2023 14:32
* depthCompare is not required for depth attachments if not used

* Refactor for success

* Refactor success definition
These were landed on the wrong branch, and are causing tests to fail
to build, because some of the code that they depend on is implemented
in a PR that hasn't landed yet.
Rewrites how test cases are generated for atan2, so that if running in
const-eval unbounded results will not be generated, since those will
cause compilation errors.

Fixes #3088
This is only defined for f32, so doesn't really need to be defined in
the common super class. This allows for removing the various stub
references to it, that will never be implemented.
This was accidentally removed in
30c129e
* Slim down on typed array allocations in conversion.ts

* Add comments explaining requirements of aliased working data
…odified (#3097)

This should hopefully categorically prevent bugs like the one fixed in
#3096
This removes a the need to create bunch of temporary JSON objects,
reducing the amount of garbage collection we need to do.

This change also changes the DataCache to be unbounded to a 4-element
LRU cache, capping the amount of memory used.
Unlike doxygen, TSDoc doesn't support @p to link to a parameter. Use code backticks instead.
* Use DataView instead of a bunch of separate typed arrays.
* Avoid small allocations where it's trivial to do so.

Speeds up deserialization around ~10% based on profiling in Chrome.
Reduces thh number of cases by using sparse instead of full ranges,
since there is going to be a cartesian product of input values when
generating cases.

Optimizes two quantization functions that had not been updated to
re-used their TypedArray. Creation and then immediate destruction of
TypedArrays are a type of hotspot we have encountered in other areas
of the code base.
…ents tests (#3104)

This patch uses the largest value of maxInterStageShaderVariables supported on
current adapter in the tests about maxInterStageShaderComponents when
creating devices so that when the value we use as maxInterStageShaderComponents
is larger than the default one, we won't be limited by the default value of
maxInterStageShaderVariables.

This patch also removes the assertion that the value of
maxInterStageShaderVariables must be larger than a quarter of
maxInterStageShaderComponents as on many backends the largest value of
maxInterStageShaderComponents is equal to 4x maxInterStageShaderVaraibles, so
in "overLimit" tests the value of maxInterStageShaderComponents can be greater
than 4x device.limits.maxInterStageShaderVaraibles.
To match all the other data types
* dev_server: serve on localhost only by default

* Limit characters in route for /out/*/listing.js
Instead of passing the input through a F16Array, use the library
provided function hfround. hfround is a fast look up table based
rounding function for f16.

Benchmarking locally this provides a ~20% improvement to fma interval
calculations, which are particularly sensitive to quantization
cost. Overall I was seeing more on the order of ~10% improvement.
Instead of passing the input through a F32Array, use the builtin
Math.fround.

This leads to a ~5% improvement benchmarking locally. This is less
than the equivalent f16 change, because F32Array is provided by the
runtime, whereas F16Array is being polyfilled, so is probably more
efficient to begin with.
buffer() was offseting the array instead of truncating the returned
array.
Another small bump (~5%) to be gained through using a builtin instead
of trampolining through a TypedArray.
@ErichDonGubler ErichDonGubler merged commit ab09ed4 into mozilla:main Nov 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.