RTX GPU Support

We are not going to add Blender features that use tricks that may or may not work around the GPL restrictions. OpenImageDenoise is a better option. Blender should be open source, downloading some closed source component at runtime is not in line with the project goals.

8 Likes

in the official nvidia website

omg-excitation

4 Likes

I think that bretch is clear… maybe the presentation won’t be about we want

We don’t need Optix denoiser, we have OiDN and the Blender denoiser, OIDN delivers better results than Optix Denoiser IMO.

3 Likes

Absolutely true.

About that, i think the nvidia rtx is not the only surprise we are going to get. And I think it’s OIDIN related.

4 Likes

Win64 build available at

8 Likes

Awesome news, but on the other hand a bit underwhelming :slight_smile: I’ll explain why.

It seems this Optix implementation works in a completely isolated way, totally separated from the rest of Cycles, so for example there is no CPU+GPU rendering, so in one powerful workstation (a 2990WX) if I need to render a scene such a machine I have to decide what will be faster, CPU+GPU without Optix or just the GPU (an RTX 2080 over CUDA has more or less the same speed as a 2990WX, so in the end 2990WX + RTX2080 could be faster in Master than the Optix version alone).

On the other hand, we have several optimizations that I’m not sure if they are compatible, like Scramble Distance, Dithered Sobol and Adaptive Sampling, in this case I’m not sure if they are compatible or not, I hope so, but if they are not, we could be loosing some super powerful optimizations that we already have that make Cycles waaaaay faster than the Cycles in 2.80 master as of today.

Finally there is the RAM problem, NVLink is not supported, for example it’s impossible to render a big project with Optix, our current project requires 20Gb of ram, and if we work in an exterior visualization that is not strange, I doubt that Optix could be used for something like Spring (I may be wrong, I’m not sure bout the total weight in RAM), but as of today, we are limited to 8Gb or 11Gb of ram (unless we have a Titan RTX with 24Gb) but it does not make use of the “sum up ram” capability of the bigger RTX GPU’s to sum up ram to get 16Gb, 22Gb or 48Gb. (Of course this will probably be solved in the future)

Don’t take me wrong, I know this is the first implementation and they are BIG GREAT NEWS, I just wanted to tell the things that worry me the most regarding the current Optix implementation, I hope in the future Optix will work under the hood, being compatible with all the other optimizations and with CPU + GPU + NVlink + Optix optimizations for GTX cards :slight_smile:

3 Likes

So to sum up your worries, would it be fair to say that you’re worried that the initial version of the patch isn’t quite a feature complete as you want, and perhaps incompatible with other patches that haven’t quite made it into master?

Well, yes and no :slight_smile:

My worries are that right now we have some production proven patches that accelerate Cycles A LOT, even to similar speeds to the ones provided by Optix, but they are fully hardware agnostic and CPU compatible.

I understand the lack of features and the infant state of the implementation, so maybe the word “worry” that is the one I used is not the better one, maybe more like thoughts about the path this will/may have.

I just want to make visible that, always IMO, this implementation is a bit a step backwards as it is, because of the reasons I said, I know devs have to review it, other patches have to be reviewed also, like Dithering, Adaptive and Scramble Distance and probably others that we don’t even know, so I hope all of those are reviewed together, it would be a bit weird to have a review for an infant patch like this one that only affects a small portion of an specific hardware users group and that the others are kept in in delay when they have been already used in production many times by a company like Theory, and I’m sure that by others too.

So it’s more like a thought, a heads up that may be unnecessary or not, I don’t know. I have mixed feelings about this, I’m very happy that we have this, but I also have all the other thoughts since I saw how the implementation has been done, maybe I was expecting, as I said earlier, something more under the hood and compatible with other accelerations, it may be compatible, let me insist that I don’t know if it is or not.

One important thing, by no means I think this is bad in any way, this is great news, just thinking about the future once I saw the current initial implementation :slight_smile:

I’m pretty sure if we have a bunch of patches in the queue that give significant speedups, it be silly to go ‘well we got 30% here, our work is done, lets go to the bar!’ after the first one.

I think you’re just gonna have to trust the reviewers here, cycles is currently almost on feature parity between backends (there’s some small differences, but not a whole lot) the odds of the reviewers suddenly switching to a model where they go this feature only on backend X! and this one only on Y+Z seems very unlikely.

1 Like

I trust reviewers :slight_smile:

I think the “fear” (if we can call it “fear”) is that we have been soooooo much time without any big cycles improvement, and with that I mean core improvement with new internal techniques for rendering, not shaders or small fixes and improvements, that now for 2.81 I’m both afraid and super excited hahaha

And in any other case, I can’t do aything, so I just wanted to bring this to the table, to chat a bit about it :slight_smile:

i have a lot of cuda error crashes and black screens. anyone else ?

Summary

drop file C:\Users\doria\Desktop\3d\pavillon_barcelone_v1.2.blend
Read blend: C:\Users\doria\Desktop\3d\pavillon_barcelone_v1.2.blend
Asset Management libraries loaded

bpy_msgbus_subscribe_rna
<wmMsg_RNA 0000016A3EAD8C58, id=‘bpy_msgbus_subscribe_rna’, RenderSettings.engine values_len=1
<<<< bpy_msgbus_subscribe_rna
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
WARN (bpy.rna): D:\0_orig\blender_bf\source\blender\python\intern\bpy_rna.c:1457 pyrna_enum_to_py: current value ‘0’ matches no enum in ‘ToolSettings’, ‘(null)’, ‘snap_node_element’
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
OptiX CUDA error CUDA_ERROR_LAUNCH_FAILED in cuStreamSynchronize(cuda_stream[thread_index]), line 610
OptiX CUDA error CUDA_ERROR_LAUNCH_FAILED in cuMemcpyDtoH( (char *)mem.host_pointer + offset, (CUdeviceptr)mem.device_pointer + offset, size), line 1334
Error: OptiX CUDA error CUDA_ERROR_LAUNCH_FAILED in cuStreamSynchronize(cuda_stream[thread_index]), line 610

i hope it’s not going to be a mess supporting 3 future type of ray tracing hardwares

I think you haven’t understood the purpose of these unified API …
these are in addition to the current gpu drivers …
that is to say (I do not know if it is already so) you will be able to use classic gpus, but that the racytracing acceleration is taken care of by the intel cpu.

hence devs, they could in theory use both nvidia RTX and intel CPU at the same time for raytracing.

2 Likes

I think you haven’t understood the purpose of these unified API …

oops :sweat_smile:

Hi, so is there an eevee port to vulkan+realtime raytracing coming sometimes in near future?

1 Like

I’m curious about this too, and I’m not sure if I using the wrong search terms, but searching for “rtx” and “eevee” doesn’t get me any results on this forum weirdly enough. Similarly, searching for “dxr” also yields nothing…

To put it crudely, Unreal/Unity were able to “patch” in RTX support in their 3D engines, but I wonder if Eevee might not be as flexible so it would need a large rewrite in order to support this? I mean, we don’t even have IES/textured light support in Eevee yet.

Then again, we might all just be exporting everything we do in Blender to Unreal 5 for rendering next year anyway… :sweat_smile:

Anyway, why is there zero talk about realtime-raytracing for Blender, or if there is talk/plans, where can we find it?