Skip to content

Commit 3dd5457

Browse files
lokokungDawn LUCI CQ
authored andcommitted
[dawn][emscripten] Port of emscripten-core/emscripten#22771
- Ports the fix for undefined features from the PR into the new emdawnwebgpu implementation. Change-Id: I1b58532a1de7d4fa52f84bc8f53680ee7867e7b8 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/212334 Reviewed-by: Kai Ninomiya <[email protected]> Commit-Queue: Loko Kung <[email protected]>
1 parent 868a467 commit 3dd5457

File tree

1 file changed

+28
-18
lines changed

1 file changed

+28
-18
lines changed

third_party/emdawnwebgpu/library_webgpu.js

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -649,15 +649,20 @@ var LibraryWebGPU = {
649649

650650
wgpuAdapterEnumerateFeatures: (adapterPtr, featuresOutPtr) => {
651651
var adapter = WebGPU.getJsObject(adapterPtr);
652-
if (featuresOutPtr !== 0) {
653-
var offset = 0;
654-
adapter.features.forEach(feature => {
655-
var featureEnumValue = WebGPU.FeatureNameString2Enum[feature];
656-
{{{ makeSetValue('featuresOutPtr', 'offset', 'featureEnumValue', 'i32') }}};
657-
offset += 4;
658-
});
659-
}
660-
return adapter.features.size;
652+
653+
var offset = 0;
654+
var numFeatures = 0;
655+
adapter.features.forEach(feature => {
656+
var featureEnumValue = WebGPU.FeatureNameString2Enum[feature];
657+
if (featureEnumValue !== undefined) {
658+
if (featuresOutPtr !== 0) {
659+
{{{ makeSetValue('featuresOutPtr', 'offset', 'featureEnumValue', 'i32') }}};
660+
offset += 4;
661+
}
662+
numFeatures++;
663+
}
664+
});
665+
return numFeatures;
661666
},
662667

663668
wgpuAdapterGetInfo__deps: ['$stringToNewUTF8', '$lengthBytesUTF8'],
@@ -1733,15 +1738,20 @@ var LibraryWebGPU = {
17331738

17341739
wgpuDeviceEnumerateFeatures: (devicePtr, featuresOutPtr) => {
17351740
var device = WebGPU.getJsObject(devicePtr);
1736-
if (featuresOutPtr !== 0) {
1737-
var offset = 0;
1738-
device.features.forEach(feature => {
1739-
var featureEnumValue = WebGPU.FeatureNameString2Enum[feature];
1740-
{{{ makeSetValue('featuresOutPtr', 'offset', 'featureEnumValue', 'i32') }}};
1741-
offset += 4;
1742-
});
1743-
}
1744-
return device.features.size;
1741+
1742+
var offset = 0;
1743+
var numFeatures = 0;
1744+
device.features.forEach(feature => {
1745+
var featureEnumValue = WebGPU.FeatureNameString2Enum[feature];
1746+
if (featureEnumValue !== undefined) {
1747+
if (featuresOutPtr !== 0) {
1748+
{{{ makeSetValue('featuresOutPtr', 'offset', 'featureEnumValue', 'i32') }}};
1749+
offset += 4;
1750+
}
1751+
numFeatures++;
1752+
}
1753+
});
1754+
return numFeatures;
17451755
},
17461756

17471757
wgpuDeviceGetLimits: (devicePtr, limitsOutPtr) => {

0 commit comments

Comments
 (0)