[WHLSL] Allow uniform buffers to be used in the interpreter
authormmaxfield@apple.com <mmaxfield@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 29 Sep 2018 02:27:54 +0000 (02:27 +0000)
committermmaxfield@apple.com <mmaxfield@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 29 Sep 2018 02:27:54 +0000 (02:27 +0000)
commitca8c97717c3cb2edd403e52e72fe6f59ca147ad6
tree57cc5f76a50042d8b2ea0edb3335772f29a90f6b
parent138330a609193454b53279e55702b5d0975030b1
[WHLSL] Allow uniform buffers to be used in the interpreter
https://bugs.webkit.org/show_bug.cgi?id=189210

Reviewed by Filip Pizlo.

Every lvalue is associated with an address space, and the propagation of these address spaces
matches the propagation of lvalues. Luckily, there was already the infrastructure to do most
of this, so this patch just goes the last few yards. It also updates the standard library to
allow for writing into all writable address spaces for out-params.

* WebGPUShadingLanguageRI/Checker.js:
(Checker.prototype.visitAssignment):
(Checker.prototype._finishVisitingPropertyAccess):
* WebGPUShadingLanguageRI/Intrinsics.js:
(Intrinsics.):
(Intrinsics.checkFalse):
(Intrinsics):
* WebGPUShadingLanguageRI/StandardLibrary.js:
(let.standardLibrary):
* WebGPUShadingLanguageRI/Test.js:
(tests.threadArrayRefLoad):
(tests.threadArrayRefLoadIntLiteral):
(tests.deviceArrayRefLoad):
(tests.threadArrayRefStore):
(tests.deviceArrayRefStore):
(tests.deviceArrayRefStoreIntLiteral):
(tests.threadPointerLoad):
(tests.threadPointerStore):
(tests.devicePointerLoad):
(tests.devicePointerStore):
(tests.arrayLoad):
(tests.constantAddressSpace):
(tests.standardLibraryDevicePointers):
(tests.threadArrayLoad): Deleted.
(tests.threadArrayLoadIntLiteral): Deleted.
(tests.deviceArrayLoad): Deleted.
(tests.threadArrayStore): Deleted.
(tests.deviceArrayStore): Deleted.
(tests.deviceArrayStoreIntLiteral): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@236635 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Tools/ChangeLog
Tools/WebGPUShadingLanguageRI/Checker.js
Tools/WebGPUShadingLanguageRI/Intrinsics.js
Tools/WebGPUShadingLanguageRI/StandardLibrary.js
Tools/WebGPUShadingLanguageRI/Test.js