Skip to content
This repository was archived by the owner on Nov 1, 2020. It is now read-only.

Commit 18bef5f

Browse files
committed
Merged master
1 parent 2adc9b8 commit 18bef5f

File tree

3 files changed

+22
-24
lines changed

3 files changed

+22
-24
lines changed

resources/shaders/deferred_composition.hlsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#define LIGHTS_REGISTER register(t3)
2-
#define MAX_REFLECTION_LOD 3
2+
#define MAX_REFLECTION_LOD 4
33

44
#include "fullscreen_quad.hlsl"
55
#include "util.hlsl"

src/render_tasks/d3d12_deferred_composition.cpp

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ namespace wr
5656

5757
constexpr unsigned int brdf_lut_loc = rs_layout::GetHeapLoc(params::deferred_composition, params::DeferredCompositionE::BRDF_LUT);
5858
auto& n_render_system = static_cast<D3D12RenderSystem&>(render_system);
59-
d3d12::TextureResource* brdf_lut_text = static_cast<d3d12::TextureResource*>(n_render_system.m_brdf_lut.value().m_pool->GetTexture(n_render_system.m_brdf_lut.value().m_id));
59+
d3d12::TextureResource* brdf_lut_text = static_cast<d3d12::TextureResource*>(n_render_system.m_brdf_lut.value().m_pool->GetTextureResource(n_render_system.m_brdf_lut.value()));
6060
d3d12::SetShaderSRV(cmd_list, 1, brdf_lut_loc, brdf_lut_text);
6161

6262
constexpr unsigned int shadow = rs_layout::GetHeapLoc(params::deferred_composition, params::DeferredCompositionE::BUFFER_REFLECTION_SHADOW);
@@ -117,7 +117,7 @@ namespace wr
117117
{
118118
constexpr auto shadow_id = rs_layout::GetHeapLoc(params::deferred_composition, params::DeferredCompositionE::BUFFER_REFLECTION_SHADOW);
119119
auto shadow_handle = data.out_rtv_srv_allocation.GetDescriptorHandle(shadow_id + i);
120-
120+
121121
auto hybrid_rt = static_cast<d3d12::RenderTarget*>(fg.GetPredecessorRenderTarget<wr::RTHybridData>());
122122
d3d12::CreateSRVFromRTV(hybrid_rt, shadow_handle, 1, hybrid_rt->m_create_info.m_rtv_formats.data());
123123
}
@@ -132,12 +132,12 @@ namespace wr
132132
auto render_target = fg.GetRenderTarget<d3d12::RenderTarget>(handle);
133133

134134
const auto& pred_data = fg.GetPredecessorData<CubemapConvolutionTaskData>();
135-
136-
if (data.is_hybrid)
137-
{
138-
// Wait on hybrid task
139-
const auto& hybird_data = fg.GetPredecessorData<RTHybridData>();
140-
}
135+
136+
if (data.is_hybrid)
137+
{
138+
// Wait on hybrid task
139+
const auto& hybird_data = fg.GetPredecessorData<RTHybridData>();
140+
}
141141

142142
if (n_render_system.m_render_window.has_value())
143143
{
@@ -155,7 +155,7 @@ namespace wr
155155
camera_data.m_is_hybrid = data.is_hybrid;
156156
camera_data.m_is_path_tracer = data.is_path_tracer;
157157

158-
active_camera->m_camera_cb->m_pool->Update(active_camera->m_camera_cb, sizeof(temp::ProjectionView_CBData), 0, (uint8_t*) &camera_data);
158+
active_camera->m_camera_cb->m_pool->Update(active_camera->m_camera_cb, sizeof(temp::ProjectionView_CBData), 0, (uint8_t*)&camera_data);
159159
const auto camera_cb = static_cast<D3D12ConstantBufferHandle*>(active_camera->m_camera_cb);
160160

161161
if (static_cast<D3D12StructuredBufferHandle*>(scene_graph.GetLightBuffer())->m_native->m_states[frame_idx] != ResourceState::NON_PIXEL_SHADER_RESOURCE)
@@ -175,7 +175,7 @@ namespace wr
175175
if (skybox != nullptr)
176176
{
177177
//data.out_skybox = static_cast<wr::d3d12::TextureResource*>(pred_data.in_radiance.m_pool->GetTexture(pred_data.in_radiance.m_id));
178-
data.out_skybox = static_cast<wr::d3d12::TextureResource*>(skybox->m_skybox->m_pool->GetTexture(skybox->m_skybox->m_id));
178+
data.out_skybox = static_cast<wr::d3d12::TextureResource*>(skybox->m_skybox->m_pool->GetTextureResource(skybox->m_skybox.value()));
179179
d3d12::CreateSRVFromTexture(data.out_skybox);
180180
}
181181

@@ -186,20 +186,18 @@ namespace wr
186186
auto hybrid_rt = static_cast<d3d12::RenderTarget*>(fg.GetPredecessorRenderTarget<wr::AccumulationData>());
187187
d3d12::CreateSRVFromSpecificRTV(hybrid_rt, irradiance_handle, 0, hybrid_rt->m_create_info.m_rtv_formats[0]);
188188
}
189-
189+
190190
// Get Irradiance Map
191191
if (skybox != nullptr)
192192
{
193-
//data.out_irradiance = static_cast<d3d12::TextureResource*>(pred_data.out_irradiance.m_pool->GetTexture(pred_data.out_irradiance.m_id));
194-
data.out_irradiance = static_cast<wr::d3d12::TextureResource*>(skybox->m_irradiance->m_pool->GetTexture(skybox->m_irradiance->m_id));
193+
data.out_irradiance = static_cast<wr::d3d12::TextureResource*>(skybox->m_irradiance->m_pool->GetTextureResource(skybox->m_irradiance.value()));
195194
d3d12::CreateSRVFromTexture(data.out_irradiance);
196195
}
197196

198197
// Get the prefiltered environment map
199-
if (skybox != nullptr)
200-
{
201-
//data.out_pref_env_map = static_cast<d3d12::TextureResource*>(pred_data.out_pref_env_map.m_pool->GetTexture(pred_data.out_pref_env_map.m_id));
202-
data.out_pref_env_map = static_cast<wr::d3d12::TextureResource*>(skybox->m_prefiltered_env_map->m_pool->GetTexture(skybox->m_prefiltered_env_map->m_id));
198+
if (skybox != nullptr)
199+
{
200+
data.out_pref_env_map = static_cast<wr::d3d12::TextureResource*>(skybox->m_prefiltered_env_map->m_pool->GetTextureResource(skybox->m_prefiltered_env_map.value()));
203201
d3d12::CreateSRVFromTexture(data.out_pref_env_map);
204202
}
205203

src/render_tasks/d3d12_rt_hybrid_task.hpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ namespace wr
241241
}
242242

243243
auto texture_handle = texture_pool->GetDefaultAlbedo();
244-
auto* texture_resource = static_cast<wr::d3d12::TextureResource*>(texture_pool->GetTexture(texture_handle.m_id));
244+
auto* texture_resource = static_cast<wr::d3d12::TextureResource*>(texture_pool->GetTextureResource(texture_handle));
245245

246246
size_t num_textures_in_heap = COMPILATION_EVAL(rs_layout::GetSize(params::rt_hybrid, params::RTHybridE::TEXTURES));
247247
unsigned int heap_loc_start = COMPILATION_EVAL(rs_layout::GetHeapLoc(params::rt_hybrid, params::RTHybridE::TEXTURES));
@@ -259,7 +259,7 @@ namespace wr
259259

260260
auto set_srv = [&data, material_internal, cmd_list](auto texture_handle)
261261
{
262-
auto* texture_internal = static_cast<wr::d3d12::TextureResource*>(texture_handle.m_pool->GetTexture(texture_handle.m_id));
262+
auto* texture_internal = static_cast<wr::d3d12::TextureResource*>(texture_handle.m_pool->GetTextureResource(texture_handle));
263263

264264
d3d12::SetRTShaderSRV(cmd_list, 0, COMPILATION_EVAL(rs_layout::GetHeapLoc(params::rt_hybrid, params::RTHybridE::TEXTURES)) + texture_handle.m_id, texture_internal);
265265
};
@@ -315,28 +315,28 @@ namespace wr
315315
// Get skybox
316316
if (scene_graph.m_skybox.has_value())
317317
{
318-
auto skybox_t = static_cast<d3d12::TextureResource*>(scene_graph.m_skybox.value().m_pool->GetTexture(scene_graph.m_skybox.value().m_id));
318+
auto skybox_t = static_cast<d3d12::TextureResource*>(scene_graph.m_skybox.value().m_pool->GetTextureResource(scene_graph.m_skybox.value()));
319319
d3d12::SetRTShaderSRV(cmd_list, 0, COMPILATION_EVAL(rs_layout::GetHeapLoc(params::rt_hybrid, params::RTHybridE::SKYBOX)), skybox_t);
320320
}
321321

322322
// Get Pre-filtered environment
323323
if (scene_graph.m_skybox.has_value())
324324
{
325-
auto irradiance_t = static_cast<d3d12::TextureResource*>(scene_graph.GetCurrentSkybox()->m_irradiance->m_pool->GetTexture(scene_graph.GetCurrentSkybox()->m_irradiance->m_id));
325+
auto irradiance_t = static_cast<d3d12::TextureResource*>(scene_graph.GetCurrentSkybox()->m_prefiltered_env_map->m_pool->GetTextureResource(scene_graph.GetCurrentSkybox()->m_prefiltered_env_map.value()));
326326
d3d12::SetRTShaderSRV(cmd_list, 0, COMPILATION_EVAL(rs_layout::GetHeapLoc(params::rt_hybrid, params::RTHybridE::PREF_ENV_MAP)), irradiance_t);
327327
}
328328

329329
// Get brdf lookup texture
330330
if (scene_graph.m_skybox.has_value())
331331
{
332-
auto brdf_lut_text = static_cast<d3d12::TextureResource*>(n_render_system.m_brdf_lut.value().m_pool->GetTexture(n_render_system.m_brdf_lut.value().m_id));
332+
auto brdf_lut_text = static_cast<d3d12::TextureResource*>(n_render_system.m_brdf_lut.value().m_pool->GetTextureResource(n_render_system.m_brdf_lut.value()));
333333
d3d12::SetRTShaderSRV(cmd_list, 0, COMPILATION_EVAL(rs_layout::GetHeapLoc(params::rt_hybrid, params::RTHybridE::BRDF_LUT)), brdf_lut_text);
334334
}
335335

336336
// Get Environment Map
337337
if (scene_graph.m_skybox.has_value())
338338
{
339-
auto irradiance_t = static_cast<d3d12::TextureResource*>(scene_graph.GetCurrentSkybox()->m_irradiance->m_pool->GetTexture(scene_graph.GetCurrentSkybox()->m_irradiance->m_id));
339+
auto irradiance_t = static_cast<d3d12::TextureResource*>(scene_graph.GetCurrentSkybox()->m_irradiance->m_pool->GetTextureResource(scene_graph.GetCurrentSkybox()->m_irradiance.value()));
340340
d3d12::SetRTShaderSRV(cmd_list, 0, COMPILATION_EVAL(rs_layout::GetHeapLoc(params::rt_hybrid, params::RTHybridE::IRRADIANCE_MAP)), irradiance_t);
341341
}
342342

0 commit comments

Comments
 (0)