Skip to content

Conversation

@RenaudRohlinger
Copy link
Collaborator

@RenaudRohlinger RenaudRohlinger commented Jun 18, 2024

Related issue: #28669

Description

We just fixed the types of properties for WGSL functions, the type of declaration needed the same treatment.

Example:

const a = tslFn( ( [] ) => {

return ivec2();

}).setLayout({ type: 'ivec2', ... })

const b = uniforms([], 'ivec4')

// Later in the shader:
const c = a().x.add(b.x)

// ----- Transpilation ------
// Before this PR, some operations were casting some nodes to float:
const c = a().x.add( float( vec4<i32>(b).x ) ) // <-- breaks because int32 + float32


// After this PR
const c = a().x.add( vec4<i32>(b).x ) // <-- works because int32 + int32

This contribution is funded by Utsubo

@RenaudRohlinger RenaudRohlinger changed the title WebGfix wgslNodeFunction layout type overriding to float TSL: WGSL Functions using wrong declaration type Jun 18, 2024
@RenaudRohlinger RenaudRohlinger changed the title TSL: WGSL Functions using wrong declaration type TSL: Fix WGSL Functions using wrong type Jun 18, 2024
@Mugen87 Mugen87 added this to the r166 milestone Jun 18, 2024
@RenaudRohlinger RenaudRohlinger requested a review from sunag June 18, 2024 13:33
@sunag
Copy link
Collaborator

sunag commented Jun 18, 2024

@RenaudRohlinger I moved outputType into the parser because it is an immutable value.

@sunag sunag merged commit 7ca25bd into mrdoob:dev Jun 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants