Skip to content

Commit de2ea6e

Browse files
authored
Revert "'maxStorageBuffersInFragmentStage' and 'maxStorageBuffersInVertexStage' aren't (#4448)" (#4521)
This reverts commit b500efd. Compatibility mode is now part of the spec. These limits are now required on all devices.
1 parent d3d675e commit de2ea6e

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

src/webgpu/api/operation/adapter/requestDevice.spec.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,20 @@ g.test('limits,supported')
279279

280280
const requiredLimits: Record<string, number | undefined> = { [limit]: value };
281281

282+
if (
283+
limit === 'maxStorageBuffersInFragmentStage' ||
284+
limit === 'maxStorageBuffersInVertexStage'
285+
) {
286+
requiredLimits['maxStorageBuffersPerShaderStage'] = value;
287+
}
288+
289+
if (
290+
limit === 'maxStorageTexturesInFragmentStage' ||
291+
limit === 'maxStorageTexturesInVertexStage'
292+
) {
293+
requiredLimits['maxStorageTexturesPerShaderStage'] = value;
294+
}
295+
282296
const device = await t.requestDeviceTracked(adapter, { requiredLimits });
283297
assert(device !== null);
284298
t.expect(

src/webgpu/capability_info.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -402,12 +402,12 @@ export const kPerStageBindingLimits: {
402402
} =
403403
/* prettier-ignore */ {
404404
'uniformBuf': { class: 'uniformBuf', maxLimits: { COMPUTE: 'maxUniformBuffersPerShaderStage', FRAGMENT: 'maxUniformBuffersPerShaderStage', VERTEX: 'maxUniformBuffersPerShaderStage' } },
405-
'storageBuf': { class: 'storageBuf', maxLimits: { COMPUTE: 'maxStorageBuffersPerShaderStage', FRAGMENT: 'maxStorageBuffersPerShaderStage', VERTEX: 'maxStorageBuffersPerShaderStage' } },
405+
'storageBuf': { class: 'storageBuf', maxLimits: { COMPUTE: 'maxStorageBuffersPerShaderStage', FRAGMENT: 'maxStorageBuffersInFragmentStage', VERTEX: 'maxStorageBuffersInVertexStage' } },
406406
'sampler': { class: 'sampler', maxLimits: { COMPUTE: 'maxSamplersPerShaderStage', FRAGMENT: 'maxSamplersPerShaderStage', VERTEX: 'maxSamplersPerShaderStage' } },
407407
'sampledTex': { class: 'sampledTex', maxLimits: { COMPUTE: 'maxSampledTexturesPerShaderStage', FRAGMENT: 'maxSampledTexturesPerShaderStage', VERTEX: 'maxSampledTexturesPerShaderStage' } },
408-
'readonlyStorageTex': { class: 'readonlyStorageTex', maxLimits: { COMPUTE: 'maxStorageTexturesPerShaderStage', FRAGMENT: 'maxStorageTexturesPerShaderStage', VERTEX: 'maxStorageTexturesPerShaderStage' } },
409-
'writeonlyStorageTex': { class: 'writeonlyStorageTex', maxLimits: { COMPUTE: 'maxStorageTexturesPerShaderStage', FRAGMENT: 'maxStorageTexturesPerShaderStage', VERTEX: 'maxStorageTexturesPerShaderStage' } },
410-
'readwriteStorageTex': { class: 'readwriteStorageTex', maxLimits: { COMPUTE: 'maxStorageTexturesPerShaderStage', FRAGMENT: 'maxStorageTexturesPerShaderStage', VERTEX: 'maxStorageTexturesPerShaderStage'} },
408+
'readonlyStorageTex': { class: 'readonlyStorageTex', maxLimits: { COMPUTE: 'maxStorageTexturesPerShaderStage', FRAGMENT: 'maxStorageTexturesInFragmentStage', VERTEX: 'maxStorageTexturesInVertexStage' } },
409+
'writeonlyStorageTex': { class: 'writeonlyStorageTex', maxLimits: { COMPUTE: 'maxStorageTexturesPerShaderStage', FRAGMENT: 'maxStorageTexturesInFragmentStage', VERTEX: 'maxStorageTexturesInVertexStage' } },
410+
'readwriteStorageTex': { class: 'readwriteStorageTex', maxLimits: { COMPUTE: 'maxStorageTexturesPerShaderStage', FRAGMENT: 'maxStorageTexturesInFragmentStage', VERTEX: 'maxStorageTexturesInVertexStage'} },
411411
};
412412

413413
/**

0 commit comments

Comments
 (0)