Browse Source

Renamed FSR3 => FSR2

fsr2
Nico de Poel 11 months ago
parent
commit
4ea19e9852
  1. 40
      FSR2UnityPlugin.cpp
  2. 0
      FSR2UnityPlugin.sln
  3. 12
      FSR2UnityTypes.h
  4. 5
      FSR3UnityPlugin.vcxproj
  5. 4
      FSR3UnityPlugin.vcxproj.filters

40
FSR3UnityPlugin.cpp → FSR2UnityPlugin.cpp

@ -16,7 +16,7 @@
#include "ffx-fsr2-api/ffx_fsr2.h" #include "ffx-fsr2-api/ffx_fsr2.h"
#include "ffx-fsr2-api/dx12/ffx_fsr2_dx12.h" #include "ffx-fsr2-api/dx12/ffx_fsr2_dx12.h"
#include "FSR3UnityTypes.h"
#include "FSR2UnityTypes.h"
static const int32_t BaseEventId = 0; static const int32_t BaseEventId = 0;
@ -33,16 +33,16 @@ static void UNITY_INTERFACE_API OnGraphicsDeviceEvent(UnityGfxDeviceEventType ev
static void UNITY_INTERFACE_API OnRenderEventAndData(int eventID, void* data); static void UNITY_INTERFACE_API OnRenderEventAndData(int eventID, void* data);
static void UNITY_INTERFACE_API OnSetTextureEvent(int eventID, void* data); static void UNITY_INTERFACE_API OnSetTextureEvent(int eventID, void* data);
struct FSR3Feature
struct FSR2Feature
{ {
FfxFsr2Context upscalingContext; FfxFsr2Context upscalingContext;
uint32_t flags; uint32_t flags;
bool isValid; bool isValid;
FSR3TextureTable textureTable;
FSR2TextureTable textureTable;
}; };
static std::vector<FSR3Feature> s_Features;
static std::vector<FSR2Feature> s_Features;
static std::queue<uint32_t> s_FeatureSlots; static std::queue<uint32_t> s_FeatureSlots;
static std::mutex s_FeatureMutex; static std::mutex s_FeatureMutex;
@ -111,7 +111,7 @@ static uint32_t AllocateFeatureSlot()
{ {
// Create a new feature if there are no free slots // Create a new feature if there are no free slots
uint32_t featureSlot = (uint32_t)s_Features.size(); uint32_t featureSlot = (uint32_t)s_Features.size();
s_Features.push_back(std::move(FSR3Feature()));
s_Features.push_back(std::move(FSR2Feature()));
return featureSlot; return featureSlot;
} }
@ -127,7 +127,7 @@ static void FreeFeatureSlot(uint32_t featureSlot)
std::lock_guard<std::mutex> lock(s_FeatureMutex); std::lock_guard<std::mutex> lock(s_FeatureMutex);
s_FeatureSlots.push(featureSlot); s_FeatureSlots.push(featureSlot);
memset(&s_Features[featureSlot], 0, sizeof(FSR3Feature));
memset(&s_Features[featureSlot], 0, sizeof(FSR2Feature));
} }
extern "C" bool UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AMDUP_InitApi() extern "C" bool UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AMDUP_InitApi()
@ -189,24 +189,24 @@ extern "C" uint32_t UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AMDUP_CreateFeatu
return AllocateFeatureSlot(); return AllocateFeatureSlot();
} }
extern "C" float UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AMDUP_GetUpscaleRatioFromQualityMode(FSR3Quality qualityMode)
extern "C" float UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AMDUP_GetUpscaleRatioFromQualityMode(FSR2Quality qualityMode)
{ {
switch (qualityMode) switch (qualityMode)
{ {
case FSR3Quality::qQuality:
case FSR2Quality::qQuality:
return 1.5f; return 1.5f;
case FSR3Quality::qBalanced:
case FSR2Quality::qBalanced:
return 1.7f; return 1.7f;
case FSR3Quality::qPerformance:
case FSR2Quality::qPerformance:
return 2.0f; return 2.0f;
case FSR3Quality::qUltraPerformance:
case FSR2Quality::qUltraPerformance:
return 3.0f; return 3.0f;
default: default:
return 1.0f; return 1.0f;
} }
} }
extern "C" bool UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AMDUP_GetRenderResolutionFromQualityMode(FSR3Quality qualityMode, uint32_t displayWidth, uint32_t displayHeight, uint32_t* renderWidth, uint32_t* renderHeight)
extern "C" bool UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AMDUP_GetRenderResolutionFromQualityMode(FSR2Quality qualityMode, uint32_t displayWidth, uint32_t displayHeight, uint32_t* renderWidth, uint32_t* renderHeight)
{ {
if (renderWidth == nullptr || renderHeight == nullptr) if (renderWidth == nullptr || renderHeight == nullptr)
return false; return false;
@ -231,7 +231,7 @@ static void UNITY_INTERFACE_API OnRenderEventAndData(int eventID, void* data)
// User rendering code // User rendering code
switch (eventID) switch (eventID)
{ {
case BaseEventId + FSR3PluginEvent::eDestroyFeature:
case BaseEventId + FSR2PluginEvent::eDestroyFeature:
{ {
uint32_t featureSlot = (uint32_t)(int64_t)data; uint32_t featureSlot = (uint32_t)(int64_t)data;
if (featureSlot < 0 || featureSlot >= s_Features.size()) if (featureSlot < 0 || featureSlot >= s_Features.size())
@ -245,9 +245,9 @@ static void UNITY_INTERFACE_API OnRenderEventAndData(int eventID, void* data)
} }
break; break;
} }
case BaseEventId + FSR3PluginEvent::eExecute:
case BaseEventId + FSR2PluginEvent::eExecute:
{ {
auto* params = (FSR3CommandExecutionData*)data;
auto* params = (FSR2CommandExecutionData*)data;
if (params->featureSlot < 0 || params->featureSlot >= s_Features.size()) if (params->featureSlot < 0 || params->featureSlot >= s_Features.size())
return; return;
@ -294,14 +294,14 @@ static void UNITY_INTERFACE_API OnRenderEventAndData(int eventID, void* data)
ffxFsr2ContextDispatch(&feature.upscalingContext, &dispatchDescription); ffxFsr2ContextDispatch(&feature.upscalingContext, &dispatchDescription);
break; break;
} }
case BaseEventId + FSR3PluginEvent::ePostExecute:
case BaseEventId + FSR2PluginEvent::ePostExecute:
{ {
auto* params = (FSR3CommandExecutionData*)data;
auto* params = (FSR2CommandExecutionData*)data;
break; break;
} }
case BaseEventId + FSR3PluginEvent::eInit:
case BaseEventId + FSR2PluginEvent::eInit:
{ {
auto* params = (FSR3CommandInitializationData*)data;
auto* params = (FSR2CommandInitializationData*)data;
if (params->featureSlot < 0 || params->featureSlot >= s_Features.size()) if (params->featureSlot < 0 || params->featureSlot >= s_Features.size())
return; return;
@ -345,7 +345,7 @@ static void UNITY_INTERFACE_API OnSetTextureEvent(int eventID, void* data)
{ {
if (clearTextureTable) if (clearTextureTable)
{ {
memset(&feature.textureTable, 0, sizeof(FSR3TextureTable));
memset(&feature.textureTable, 0, sizeof(FSR2TextureTable));
} }
break; break;
} }

0
FSR3UnityPlugin.sln → FSR2UnityPlugin.sln

12
FSR3UnityTypes.h → FSR2UnityTypes.h

@ -1,6 +1,6 @@
#pragma once #pragma once
enum FSR3PluginEvent : int32_t
enum FSR2PluginEvent : int32_t
{ {
eDestroyFeature, eDestroyFeature,
eExecute, eExecute,
@ -8,7 +8,7 @@ enum FSR3PluginEvent : int32_t
eInit eInit
}; };
enum FSR3Quality: int32_t
enum FSR2Quality: int32_t
{ {
qQuality, qQuality,
qBalanced, qBalanced,
@ -16,7 +16,7 @@ enum FSR3Quality: int32_t
qUltraPerformance qUltraPerformance
}; };
enum FSR3Textures: int32_t
enum FSR2Textures: int32_t
{ {
tColorInput, tColorInput,
tColorOutput, tColorOutput,
@ -28,7 +28,7 @@ enum FSR3Textures: int32_t
tBiasColorMask, tBiasColorMask,
}; };
struct FSR3CommandInitializationData
struct FSR2CommandInitializationData
{ {
uint32_t maxRenderSizeWidth; uint32_t maxRenderSizeWidth;
uint32_t maxRenderSizeHeight; uint32_t maxRenderSizeHeight;
@ -39,7 +39,7 @@ struct FSR3CommandInitializationData
uint32_t featureSlot; uint32_t featureSlot;
}; };
struct FSR3CommandExecutionData
struct FSR2CommandExecutionData
{ {
float jitterOffsetX; float jitterOffsetX;
float jitterOffsetY; float jitterOffsetY;
@ -59,7 +59,7 @@ struct FSR3CommandExecutionData
uint32_t featureSlot; uint32_t featureSlot;
}; };
struct FSR3TextureTable
struct FSR2TextureTable
{ {
intptr_t colorInput; intptr_t colorInput;
intptr_t colorOutput; intptr_t colorOutput;

5
FSR3UnityPlugin.vcxproj

@ -24,6 +24,7 @@
<ProjectGuid>{505a5886-66bc-4210-b4e8-1301cfb75e74}</ProjectGuid> <ProjectGuid>{505a5886-66bc-4210-b4e8-1301cfb75e74}</ProjectGuid>
<RootNamespace>FSR3UnityPlugin</RootNamespace> <RootNamespace>FSR3UnityPlugin</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion> <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
<ProjectName>FSR2UnityPlugin</ProjectName>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
@ -147,10 +148,10 @@
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="FSR3UnityPlugin.cpp" />
<ClCompile Include="FSR2UnityPlugin.cpp" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="FSR3UnityTypes.h" />
<ClInclude Include="FSR2UnityTypes.h" />
</ItemGroup> </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <ImportGroup Label="ExtensionTargets">

4
FSR3UnityPlugin.vcxproj.filters

@ -15,12 +15,12 @@
</Filter> </Filter>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="FSR3UnityPlugin.cpp">
<ClCompile Include="FSR2UnityPlugin.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="FSR3UnityTypes.h">
<ClInclude Include="FSR2UnityTypes.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
</ItemGroup> </ItemGroup>
Loading…
Cancel
Save