Page MenuHome

Eevee - no volume density textures when using Vega 64 external gpu on macOS Mojave
Confirmed, NormalPublicBUG

Description

System Information
Operating system: Darwin-18.6.0-x86_64-i386-64bit 64 Bits
Graphics card: AMD Radeon RX Vega 64 OpenGL Engine ATI Technologies Inc. 4.1 ATI-2.9.26

Blender Version
Broken: version: 2.80 (sub 74), branch: blender2.7, commit date: 2019-06-16 23:08, hash: rB12da679fa094
Worked: Was working briefly with some builds in March 2019.

Short description of error
MacOS Mojave external GPU fails to render volumetric on Eevee if there is a density texture. Internal GPU works fine.

Exact steps for others to reproduce the error
Using external Vega 64:
On default cube, add principled volume shader to volume material output: volume looks correct.
Plug noise texture node into density input of principled volume shader: volume disappears.
Using internal Radeon 560x:
Exact same steps gives properly textured volume.

[Based on the default startup or an attached .blend file (as simple as possible)]

Event Timeline

Sebastian Parborg (zeddb) lowered the priority of this task from 90 to 80.Jun 21 2019, 10:58 AM
Brecht Van Lommel (brecht) lowered the priority of this task from 80 to Normal.Jul 3 2019, 4:37 PM
Clément Foucault (fclem) closed this task as Resolved.Jan 30 2020, 2:30 PM
Clément Foucault (fclem) claimed this task.
Clément Foucault (fclem) changed the subtype of this task from "Report" to "Bug".

Is this still happening? I remember fixing similar issues. Closing for now. Please comment if it is still happening with latest beta version.

the issue has persisted for me this entire time.

on the latest macos, works with internal amd 560x, and fails fails with vega64 egpu (but works with vega64 under windows). attached is a screen recording of me replicating issue with recent 2.82 build, and i have the identical result with a 2.83 build as well.

also, i don't know if this will be helpful in tracking down the bug, but smoke sims plugged into the volume density do work on the vega 64, so i don't know if there are any obvious differences in how texture data is handled via the volume info node vs other textures.

Clément Foucault (fclem) reopened this task as Confirmed.Feb 2 2020, 10:16 PM

@steve miller (winnertakesteve) Ok so it's only a problem of procedural textures. Can you try with a plugged texture coordinate in the noise texture?

Oh hey! I gave that a try, and while none of the Texture Coordinate node outputs (Generated/Object/UV/etc) worked, on a lark I tried using the Geometry Node outputs, and those DO work!

@steve miller (winnertakesteve) can you test if just plugging the texture coordinates outputs to the color input of the principle volume node works?

@steve miller (winnertakesteve) can you test if just plugging the texture coordinates outputs to the color input of the principle volume node works?

all texture coordinate node outputs into the colour input of the volume node causes the volume to disappear. doing the same with geometry node outputs (except tangent, which also makes volume disappear) produces a coloured volume result.

also don't know if its helpful, but i tried adding a math node that added value to the problematic outputs to see if they were coming in as '0', but it made no difference, so i'm assuming those outputs are reporting Null or throwing errors?

@steve miller (winnertakesteve) Do you get the same behavior if you plug the texture coord/geometry node straight to the material output's volume socket?

@steve miller (winnertakesteve) Do you get the same behavior if you plug the texture coord/geometry node straight to the material output's volume socket?

yeah i get similar behaviour, geometry node outputs give a result, texture coordinate outputs make volume disappear.

I can confirm this behavior with OSX 10.14.6
2018 Macbook Pro
Radeon Pro Vega 20 4 GB
Intel UHD Graphics 630 1536 MB

Blender Version 2.83 (2.83 2020-03-09)

Attached is a very simple blend that shows the problem

Rob{F8403637}

I'm still getting this too with OSX 10.15.3
2019 Macbook Pro
Radeon Pro Vega 20 4Gb

Blender Version 2.83 (2.83 2020-03-20)

Geometry Nodes work and Texture Nodes don't with EEVEE. Cycles works fine.

Is there any other information that might be handy for a developer?
Would be nice to get this fixed in the next release since I think it effects most high-end mac's going forward?
If someone was going to start looking through the code where would they start?
source->blender->draw->engines->eevee-> or source->blender->gpu-> or is there a good functional chart.

Has anyone found a workaround?

I'm running Blender on a 2018 Macbook Pro with a Radeon Pro 560X internal GPU & Radeon VII eGPU with this problem.

Volumetrics behave more or less as expected in eevee with the internal 560X, but are almost entirely crippled to nothing on the Radeon VII. Cycles works fine, except that I'm limited to CPU-only on my machine.

On the Radeon VII, volumetrics won't show up at all when using the Texture Coordinate node, and things get very strange when trying to procedurally manipulate volumes using noise or gradient textures with the Object Info or Geometry node to drive vector. This reduces everything to a primitive state where I can't seem to reliably shape the volume density very far past anything other than a cube without things falling apart.

Any progress on this over the last few weeks? Anyone have any suggestions?

EDIT: I just tested these in 2.80, 2.81, 2.81a, 2.82, 2.82a, 2.83, & 2.90 and all of these versions exhibit the issue.

I have sumbled across the same issue on MacOS with Vega external eGPU in EEVEE. No volumetrics is rendered when plugging in a procedual Texture Node into the density of the volumetric principled shader. But using the geometry as th input works fine like that :

geometry node (position --> vector) noise texture (factor ---> density) principled volume (volume ---> volume) material output.

But unfortunately i cant get it to work the same way when using a "Gradient Texture" Node instead of the "Noise Texture" Node. Any Ideas how to solve this, or will this be fixed with a newer version soon?
i really need to fade the volumetrics with a gradient node. Or is there any other way to fade the volumetrics when using the geometry node?

I found a solution to workaround for fading volumetrics in eevee on macOS with Vega. you can easily work this further and combine this with the texture node by smooth minimum combining it. hope this helps someone, since it drove me nuts:

Thanks for the workaround @Lars (mvipe).

Adding another failing test case to the list of AMD GPUs which can't show the volumetrics properly: the brand new Radeon Pro 5600M.

Been doing some tests and comparisons with macOS and Windows via boot camp on the same machine, and it appears that the gradient-modified volume works in eevee on windows but not on Mac. At least with this card. For what that's worth.