-
Notifications
You must be signed in to change notification settings - Fork 335
Add GPULimits.maxUniformBufferBindingSize. #803
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
Conversation
Start with a minimum maximum of 2^14 as that's the limit in Vulkan that's hit for various ARM devices and for Swiftshader. Limits for Metal and D3D12 are unclear but should be more than this. The limit could be increased if we decided that the ARM devices should be falling back to a WebGPU-compatibility feature level instead.
D3D compiler FXC has a maximum allowed size for constant buffers (16384 bytes). For example, // Error from FXC |
The error message seems to indicate the maximum is |
Myles pointed out that this is about the specialization-constant style "Function Constants" in Metal. |
Addressed all comments! |
map with {{GPUBufferUsage/UNIFORM}} flag. | ||
|
||
Issue: This validation should take into account the default when {{GPUBufferBinding/size}} is not set. | ||
Also should {{GPUBufferBinding/size}} default to the `buffer.byteLength - offset` or |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you default to min(buffer.byteLength - offset, limits.maxUniformBufferBindingSize)
would it always pass validation when it shouldn't?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We just merged this but @Kangz can you check this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would always pass validation but could result in clipping the data in surprising ways for the developer.
Agreed in meeting 2020-06-01. |
* common/runtime: Improve error handling Catch exeptions raised while gathering test cases and running them. Properly emit a 200 status code on success. * Update server.ts Emit `404` for test not found.
Start with a minimum maximum of 2^14 as that's the limit in Vulkan
that's hit for various ARM devices and for Swiftshader. Limits for Metal
and D3D12 are unclear but should be more than this.
The limit could be increased if we decided that the ARM devices should
be falling back to a WebGPU-compatibility feature level instead.
Preview | Diff