Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 0 additions & 77 deletions src/Deferred.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -107,21 +107,6 @@ void Deferred::SetupResources()
SetupRenderTarget(NORMALROUGHNESS, texDesc, srvDesc, rtvDesc, uavDesc, DXGI_FORMAT_R10G10B10A2_UNORM, D3D11_BIND_RENDER_TARGET | D3D11_BIND_SHADER_RESOURCE);
// Masks
SetupRenderTarget(MASKS, texDesc, srvDesc, rtvDesc, uavDesc, DXGI_FORMAT_R8G8B8A8_UNORM, D3D11_BIND_RENDER_TARGET | D3D11_BIND_SHADER_RESOURCE);

texDesc.Format = DXGI_FORMAT_R16G16B16A16_FLOAT;
texDesc.Width = 2;
texDesc.Height = 2;

adaptationTextures[0] = new Texture2D(texDesc);
adaptationTextures[1] = new Texture2D(texDesc);

srvDesc.Format = texDesc.Format;
adaptationTextures[0]->CreateSRV(srvDesc);
adaptationTextures[1]->CreateSRV(srvDesc);

rtvDesc.Format = texDesc.Format;
adaptationTextures[0]->CreateRTV(rtvDesc);
adaptationTextures[1]->CreateRTV(rtvDesc);
}

{
Expand Down Expand Up @@ -197,13 +182,6 @@ void Deferred::SetupResources()
prevDiffuseAmbientTexture->CreateSRV(srvDesc);
prevDiffuseAmbientTexture->CreateUAV(uavDesc);
}

// Testing code for imagespace shaders
{
auto device = globals::d3d::device;
auto context = globals::d3d::context;
DirectX::CreateDDSTextureFromFile(device, context, L"Data\\Shaders\\LUT.dds", nullptr, lutTexture.put());
}
}

void Deferred::CopyShadowData()
Expand Down Expand Up @@ -773,61 +751,6 @@ ID3D11ComputeShader* Deferred::GetComputeMainCompositeInterior()
return mainCompositeInteriorCS;
}

void Deferred::HDRShaderHacks()
{
if (globals::state->currentShader && globals::state->currentShader->shaderType.get() == RE::BSShader::Type::ImageSpace) {
const auto& isShader = static_cast<const RE::BSImagespaceShader&>(*globals::state->currentShader);

enum class ShaderAction
{
Adaptation,
HDR
};

static const ankerl::unordered_dense::map<std::string_view, ShaderAction> shaderMap{
{ "BSImagespaceShaderHDRDownSample4LightAdapt", ShaderAction::Adaptation },
{ "BSImagespaceShaderHDRDownSample16LightAdapt", ShaderAction::Adaptation },
{ "BSImagespaceShaderHDRTonemapBlendCinematic", ShaderAction::HDR },
{ "BSImagespaceShaderHDRTonemapBlendCinematicFade", ShaderAction::HDR }
};

auto it = shaderMap.find(isShader.name);
if (it != shaderMap.cend()) {
switch (it->second) {
case ShaderAction::Adaptation:
BindAdaptationShader();
break;
case ShaderAction::HDR:
BindHDRShader();
break;
}
}
}
}

void Deferred::BindAdaptationShader()
{
uint frameSwap = (globals::state->frameCount % 2);

auto srv = adaptationTextures[frameSwap]->srv.get();
globals::d3d::context->PSSetShaderResources(1, 1, &srv);

auto rtv = adaptationTextures[!frameSwap]->rtv.get();
globals::d3d::context->OMSetRenderTargets(1, &rtv, nullptr);
}

void Deferred::BindHDRShader()
{
uint frameSwap = (globals::state->frameCount % 2);

auto srv = adaptationTextures[!frameSwap]->srv.get();
globals::d3d::context->PSSetShaderResources(2, 1, &srv);

auto view = lutTexture.get();
if (view)
globals::d3d::context->PSSetShaderResources(100, 1, &view);
}

void Deferred::Hooks::Main_RenderShadowMaps::thunk()
{
func();
Expand Down
9 changes: 0 additions & 9 deletions src/Deferred.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,6 @@ class Deferred

ID3D11ComputeShader* GetComputeMainCompositeInterior();

void HDRShaderHacks();

void BindAdaptationShader();

void BindHDRShader();

ID3D11BlendState* deferredBlendStates[7][2][13][2];
ID3D11BlendState* forwardBlendStates[7][2][13][2];

Expand Down Expand Up @@ -80,9 +74,6 @@ class Deferred
Buffer* perShadow = nullptr;
ID3D11ShaderResourceView* shadowView = nullptr;

Texture2D* adaptationTextures[2];
winrt::com_ptr<ID3D11ShaderResourceView> lutTexture = nullptr;

struct Hooks
{
struct Main_RenderShadowMaps
Expand Down
2 changes: 0 additions & 2 deletions src/State.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,6 @@ void State::Draw()

truePBR->SetShaderResouces(context);

globals::deferred->HDRShaderHacks();

if (permutationData != permutationDataPrevious) {
permutationCB->Update(permutationData);
permutationDataPrevious = permutationData;
Expand Down