Jump to content

Editor Crashing on AMD Radeon Drivers Beyond 24.8.1


mdgunn
 Share

Recommended Posts

In brief:

If I am on Ultra Engine 0.98 and Radeon driver 24.8.1 then things are OK but moving either forwards (either to hot beta branch) or later Radeon (24.or 24.10.1)  drivers leads to instant crash trying to do anything which would cause the viewport (or viewers) to render in 3D. 

In a  bit more detail:

This is probably something in my setup but I have it on 2 different machines. 

Both machines are AMD based GPU + CPU + Windows 11.

One is Ryzen 3600X with Radeon 6600 other is Ryzen 5800X3D with Radeon 6800 XT.

When on latest Radeon drivers the edtor will crash with no particular error at the point where I add something that must be rendered on the screen. By this I mean I can add icon types things such as cameras, lights, probes etc to either perspective or 2d viewport with no problem.  I can also add brushes to 2D viewports but if I switch to 4 viewports then the editor crashes and I suspect it is because it has to render the brush in 3D not 2D.  It is not limited to brushes though, I think adding terrain will do it and clicking on a model file in the asset browser to make it render a 3D version in the viewer will make it crash.

 

Josh has already said he can run a Radeon 6600  (same as one of my cards) on latest hot branch of Ultra Engine and Radeon 24.10.1  so there is something about both of my machines that is causing the issue but I do not know how to gather more information on what the cause would be.   Can anyone help? For example is there a crash log somewhere or are there any suggestions to turn anything off to rule things out and narrow down the cause?

 

 

  • Thanks 1
  • Upvote 1
Link to comment
Share on other sites

PBR shader family crashes, but unlit shader family seems to work correctly.

The error is in the driver, no OpenGL errors occur.

Commenting out RenderLighting in Shaders/PBR/Fragment.glsl prevents the crash...

#include "UltraEngine.h"

using namespace UltraEngine;

int main(int argc, const char* argv[])
{
    auto displays = GetDisplays();
    auto window = CreateWindow("Ultra Engine", 0, 0, 1280 * displays[0]->scale, 720 * displays[0]->scale, displays[0], WINDOW_CENTER | WINDOW_TITLEBAR);
    auto framebuffer = CreateFramebuffer(window);
    auto world = CreateWorld();

    auto cam = CreateCamera(world);
    cam->Move(0, 0, -2);
    cam->SetClearColor(0.125);

    auto box = CreateBox(world);
    auto mtl = CreateMaterial();
    auto fam = LoadShaderFamily("Shaders/Unlit.fam");
    //auto fam = LoadShaderFamily("Shaders/PBR.fam");
    mtl->SetShaderFamily(fam);
    mtl->SetColor(0, 0, 1, 1);
    box->SetMaterial(mtl);

    //Main loop
    while (window->Closed() == false and window->KeyDown(KEY_ESCAPE) == false)
    {
        box->Turn(0, 1, 0);
        world->Update();
        world->Render(framebuffer, true);
    }
    return 0;
}

 

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

Okay, it looks like in the latest drivers these commands cause problems if they are used on samplers that come from bindless texture handles:

  • textureSize
  • textureQueryLevels

I think I just need to encode this information in the light entity data and remove these calls...

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...