this post was submitted on 19 Nov 2024
19 points (95.2% liked)

Godot

5902 readers
13 users here now

Welcome to the programming.dev Godot community!

This is a place where you can discuss about anything relating to the Godot game engine. Feel free to ask questions, post tutorials, show off your godot game, etc.

Make sure to follow the Godot CoC while chatting

We have a matrix room that can be used for chatting with other members of the community here

Links

Other Communities

Rules

We have a four strike system in this community where you get warned the first time you break a rule, then given a week ban, then given a year ban, then a permanent ban. Certain actions may bypass this and go straight to permanent ban if severe enough and done with malicious intent

Wormhole

[email protected]

Credits

founded 1 year ago
MODERATORS
 

I have heard many times that if statements in shaders slow down the gpu massively. But I also heard that texture samples are very expensive.

Which one is more endurable? Which one is less impactful?

I am asking, because I need to decide on if I should multiply a value by 0, or put an if statement.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 5 points 1 day ago* (last edited 1 day ago)

Impact of if statements depends on how you use them. GPUs are massively parallel and sacrifice complexity to fit more parallel compute. Threads aren't fully independent, so regardless of which branch is taken, the thread usually has to wait for both branches.

Pixels that take the then-branch idle while other ones take the else-branch and vice versa. That's precious GPU time wasted doing nothing. Nested if statements make this exponentially worse because the program has to wait for every case.

Can't say if it's slower than your other expensive job, though. Try it out and measure.