dmap now contains path tracing optimizations stored in iceproc files.

This commit is contained in:
Justin Marshall
2026-05-26 12:14:39 -07:00
parent 754f5b4aa0
commit 41cbd5669b
50 changed files with 350449 additions and 624741 deletions
+36
View File
@@ -1656,6 +1656,12 @@ typedef uint32_t glRaytracingInstanceHandle_t;
static const uint32_t GL_RAYTRACING_MAX_LIGHTS = 256;
static const uint32_t GL_RAYTRACING_PROC_SURFACE_EMISSIVE = 0x00000001u;
static const uint32_t GL_RAYTRACING_PROC_SURFACE_UNLIT = 0x00000002u;
static const uint32_t GL_RAYTRACING_PROC_SURFACE_SKY = 0x00000004u;
static const uint32_t GL_RAYTRACING_PROC_SURFACE_ALPHA_TESTED = 0x00000008u;
static const uint32_t GL_RAYTRACING_PROC_SURFACE_TWO_SIDED = 0x00000010u;
typedef struct glRaytracingVec3_s
{
float x, y, z;
@@ -1732,6 +1738,33 @@ typedef struct glRaytracingLightingPassDesc_s
uint32_t height;
} glRaytracingLightingPassDesc_t;
typedef struct glRaytracingProfileCounters_s
{
uint32_t frameCounter;
uint32_t width;
uint32_t height;
uint32_t lightCount;
uint32_t pointLightCount;
uint32_t spotLightCount;
uint32_t rectLightCount;
uint32_t shadowCastingLightCount;
uint32_t volumetricLightCount;
uint32_t samplesPerPixel;
uint32_t maxBounces;
uint32_t enableSpecular;
uint32_t enableDenoiser;
uint32_t meshCount;
uint32_t instanceCount;
uint32_t directLightSamplesPerPixel;
uint32_t directShadowRaysPerPixel;
uint32_t indirectBounceRaysPerPixel;
uint32_t indirectLightEvalsPerPixel;
uint32_t finalGatherRaysPerPixel;
uint32_t reflectionRaysPerPixel;
uint32_t volumetricShadowRaysPerPixel;
float gpuMsec;
} glRaytracingProfileCounters_t;
typedef struct glScreenSpaceDecal_s
{
glRaytracingVec3_t origin;
@@ -1848,6 +1881,7 @@ glRaytracingLight_t glRaytracingLightingMakeRectLight(
uint32_t twoSided);
uint32_t glRaytracingLightingGetLightCount(void);
bool glRaytracingLightingGetProfileCounters(glRaytracingProfileCounters_t* counters);
void glLightScene(glRaytracingSceneHandle_t sceneHandle);
void glSetScreenSpaceDecalsQD3D12(const glScreenSpaceDecal_t* decals, uint32_t decalCount);
@@ -2274,6 +2308,7 @@ void glUpdateTopLevelAceelStructure(
void glRaytracingLightingSetExternalDenoiser(int enable);
void glRaytracingLightingUseExternalDenoiser(int enable);
void glRaytracingLightingSetPathTracingOptions(uint32_t samplesPerPixel, uint32_t maxBounces, int enableDenoiser, float denoiseStrength);
void glRaytracingLightingSetSecondaryLightBudget(int budget, float compensation);
void QD3D12_SetPathTracingQuality(uint32_t samplesPerPixel, uint32_t maxBounces);
void QD3D12_SetPathTracingFallbackSamples(uint32_t samplesPerPixel);
@@ -2310,6 +2345,7 @@ extern "C" {
void glRaytracingSetMeshMaterialFlags(glRaytracingMeshHandle_t meshHandle, uint32_t materialFlags);
void glRaytracingSetMeshGlass(glRaytracingMeshHandle_t meshHandle, int isGlass);
void glRaytracingSetMeshAverageColor(glRaytracingMeshHandle_t meshHandle, float r, float g, float b, float a);
void glRaytracingSetMeshProcMetadata(glRaytracingMeshHandle_t meshHandle, uint32_t procFlags, float emissiveR, float emissiveG, float emissiveB, float emissivePower);
// For callers that create raytracing instances directly instead of using the
// shim's glUpdateTopLevelAceelStructure() helper. Glass meshes must also use