Skip to content

Commit 1c5a73e

Browse files
fix: Ensure can handle plain IntegerLiteral return type from function
1 parent e778dc1 commit 1c5a73e

File tree

2 files changed

+43
-1
lines changed

2 files changed

+43
-1
lines changed

src/backend/web-gl/function-node.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1178,6 +1178,7 @@ const typeMap = {
11781178
'Input': 'sampler2D',
11791179
'Integer': 'int',
11801180
'Number': 'float',
1181+
'LiteralInteger': 'float',
11811182
'NumberTexture': 'sampler2D',
11821183
'MemoryOptimizedNumberTexture': 'sampler2D',
11831184
'ArrayTexture(1)': 'sampler2D',
@@ -1193,4 +1194,4 @@ const operatorMap = {
11931194

11941195
module.exports = {
11951196
WebGLFunctionNode
1196-
};
1197+
};

test/internal/function-return-type-detection.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,47 @@ const { GPU } = require('../../src');
33

44
describe('internal: Function return type detection');
55

6+
function canDetectNumberFromAddedFunction(mode) {
7+
const gpu = new GPU({ mode });
8+
function number() {
9+
return 1;
10+
}
11+
gpu.addFunction(number);
12+
const kernel = gpu.createKernel(function() {
13+
const values = number();
14+
return values + values;
15+
}, { output: [1] });
16+
17+
const result = kernel();
18+
assert.equal(result[0], 2);
19+
20+
gpu.destroy();
21+
}
22+
23+
test('can detect Number auto', () => {
24+
canDetectNumberFromAddedFunction();
25+
});
26+
27+
test('can detect Number gpu', () => {
28+
canDetectNumberFromAddedFunction('gpu');
29+
});
30+
31+
(GPU.isWebGLSupported ? test : skip)('can detect Number webgl', () => {
32+
canDetectNumberFromAddedFunction('webgl');
33+
});
34+
35+
(GPU.isWebGL2Supported ? test : skip)('can detect Number webgl2', () => {
36+
canDetectNumberFromAddedFunction('webgl2');
37+
});
38+
39+
(GPU.isHeadlessGLSupported ? test : skip)('can detect Number headlessgl', () => {
40+
canDetectNumberFromAddedFunction('headlessgl');
41+
});
42+
43+
test('can detect Number cpu', () => {
44+
canDetectNumberFromAddedFunction('cpu');
45+
});
46+
647
function canDetectArray2FromAddedFunction(mode) {
748
const gpu = new GPU({ mode });
849
function array2() {

0 commit comments

Comments
 (0)