Files
UnrealEngineUWP/Engine/Shaders/Shared/PathTracingDefinitions.h
chris kulla dd3268b97e Avoid wave operations in path compaction shader which appears to give a slight speedup despite additional contention on the atomic and does not require running with SM6.
Implement tiled dispatch in the path tracer to reduce the likelyhood of GPU timeouts when rendering at high resolution. This also reduces the memory requirements for path state when running with path compaction enabled.

Change from a uint buffer to a structured buffer for storing path states which gives a small speedup.

Add indirect dispatch support to launch less work for compacted bounces (off by default as it does not seem to provide a speedup so far)

#jira TM-6595
#rb Juan.Canada
#robomerge 5.0
#preflight 61b27c6a2b48d03df526ce85
#preflight 61b28773ee0de9822e0f02de

[CL 18426885 by chris kulla in ue5-main branch]
2021-12-09 18:34:33 -05:00

34 lines
1.4 KiB
C

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#define PATHTRACER_MAX_RECT_TEXTURES 8
#define PATHTRACER_COHERENT_TILE_SHIFT 3
#define PATHTRACER_COHERENT_TILE_SIZE (1 << PATHTRACER_COHERENT_TILE_SHIFT)
// Constants for 'SamplerType'
#define PATHTRACER_SAMPLER_DEFAULT 0
#define PATHTRACER_SAMPLER_ERROR_DIFFUSION 1
#define PATHTRACER_SAMPLER_COHERENT 2
// Constants for the 'Flags' field of FPathTracingLight
#define PATHTRACER_FLAG_LIGHTING_CHANNEL_MASK (7 << 0) // Which lighting channel is this light assigned to?
#define PATHTRACER_FLAG_TRANSMISSION_MASK (1 << 3) // Does the light affect the transmission side?
#define PATHTRACER_FLAG_NON_INVERSE_SQUARE_FALLOFF_MASK (1 << 4) // Does the light have a non-inverse square decay?
#define PATHTRACER_FLAG_STATIONARY_MASK (1 << 5) // Only used by GPULightmass
#define PATHTRACER_FLAG_TYPE_MASK (7 << 6)
#define PATHTRACING_LIGHT_SKY (0 << 6)
#define PATHTRACING_LIGHT_DIRECTIONAL (1 << 6)
#define PATHTRACING_LIGHT_POINT (2 << 6)
#define PATHTRACING_LIGHT_SPOT (3 << 6)
#define PATHTRACING_LIGHT_RECT (4 << 6)
#define PATHTRACER_FLAG_CAST_SHADOW_MASK (1 << 9)
// Constants for the path tracer light grid
#define PATHTRACER_LIGHT_GRID_SINGULAR_MASK 0x80000000u
#define PATHTRACER_LIGHT_GRID_LIGHT_COUNT_MASK 0x7FFFFFFFu
// Constants for the energy conservation texture sizes
#define PATHTRACER_ENERGY_TABLE_RESOLUTION 32