Skip to content

[Unity] Radeon Rays Crash #550

@xcerv

Description

@xcerv

System Information

  • Steam Audio version: 4.8.1
  • Unity version: Unity 6.4 URP, 6000.4.2f1
  • Operating System and version: Windows 10
  • CPU architecture: x86-64
  • GPU: Nvidia GeForce 1070ti

Issue Description
Using Radeon Rays as the raycaster leads to crashing, that is not present with Embree. Unfortunately, I was not able to determine the primary cause for easy replication, but I can provide my crashdump and Editor.log (or Player.Log, as the crash happened in build as well). It happened generally in situations with many sounds being emitted at once.
I've done only preliminary verification of the cause and If I traced the cause correctly, it seems to be coming from the method void OpenCLEnergyField::copyDeviceToHost(), specifically the code:

void OpenCLEnergyField::copyDeviceToHost()
{
    auto _buffer = reinterpret_cast<int*>(clEnqueueMapBuffer(mOpenCL->irUpdateQueue(), mBuffer.buffer(), CL_TRUE,
                                          CL_MAP_READ, 0, mBuffer.size(), 0, nullptr, nullptr, nullptr));

    for (auto i = 0, index = 0; i < numChannels(); ++i)
    {
        for (auto j = 0; j < Bands::kNumBands; ++j)
        {
            for (auto k = 0; k < std::min(numBins(), kMaxBins); ++k, ++index)
            {
                mData[i][j][k] = _buffer[index] / RadeonRaysReflectionSimulator::kHistogramScale;
            }

            index += std::max(0, kMaxBins - numBins());
        }
    }

    clEnqueueUnmapMemObject(mOpenCL->irUpdateQueue(), mBuffer.buffer(), _buffer, 0, nullptr, nullptr);
}

Where there is a nullptr dereference of the _buffer.
In my project, I didn't utilise reflections on any AudioSources, but I do use Baked Reverb and Baked Pathing.

Steam Audio Settings
Image

Steam Audio Source Settings
Image

Note: I enable the SteamAudioSource component prior to running AudioSource.Play(), and similarly set the Spatial Blend only before playing the sound.

Steam Audio Listener Settings

Image

Crash Dump
Player.log
crash.dmp

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions