Skip to content

Commit b97d4c6

Browse files
committed
fix(crimsondesert): add grass AO for nvidia cards
1 parent f5ef3ca commit b97d4c6

3 files changed

Lines changed: 916 additions & 0 deletions

File tree

src/games/crimsondesert/addon.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,12 +182,16 @@ const std::unordered_map<std::string, float> NEUTRAL_VALUES = {
182182

183183
bool rr_draw = false;
184184
int rr_draw_counter = 0;
185+
bool is_nvidia = true;
185186

186187
renodx::mods::shader::CustomShaders custom_shaders = {
187188
CustomShaderEntryCallback(0x21B66142, [](reshade::api::command_list* /*cmd_list*/) {
188189
rr_draw = true;
189190
return true;
190191
}),
192+
CustomShaderEntryCallback(0x28A5B177, [](reshade::api::command_list* /*cmd_list*/) {
193+
return is_nvidia;
194+
}),
191195
__ALL_CUSTOM_SHADERS};
192196
// renodx::mods::shader::CustomShaders custom_shaders;
193197

@@ -1441,6 +1445,12 @@ void OnInitSwapchain(reshade::api::swapchain* swapchain, bool resize) {
14411445
tone_map_diffuse_white_setting->default_value = fmin(renodx::utils::swapchain::ComputeReferenceWhite(tone_map_peak_nits_setting->default_value), 203.f);
14421446
}
14431447

1448+
void OnInitDevice(reshade::api::device* device) {
1449+
int vendor_id;
1450+
auto retrieved = device->get_property(reshade::api::device_properties::vendor_id, &vendor_id);
1451+
is_nvidia = (retrieved && vendor_id == 0x10de);
1452+
}
1453+
14441454
} // namespace
14451455

14461456
extern "C" __declspec(dllexport) constexpr const char* NAME = "RenoDX";
@@ -1451,6 +1461,9 @@ BOOL APIENTRY DllMain(HMODULE h_module, DWORD fdw_reason, LPVOID lpv_reserved) {
14511461
case DLL_PROCESS_ATTACH:
14521462
if (!reshade::register_addon(h_module)) return FALSE;
14531463
// while (IsDebuggerPresent() == 0) Sleep(100);
1464+
1465+
reshade::register_event<reshade::addon_event::init_device>(OnInitDevice); // Vendor detection
1466+
14541467
reshade::register_event<reshade::addon_event::init_swapchain>(OnInitSwapchain);
14551468
reshade::register_event<reshade::addon_event::present>(OnPresent);
14561469

@@ -1470,6 +1483,7 @@ BOOL APIENTRY DllMain(HMODULE h_module, DWORD fdw_reason, LPVOID lpv_reserved) {
14701483

14711484
break;
14721485
case DLL_PROCESS_DETACH:
1486+
reshade::unregister_event<reshade::addon_event::init_device>(OnInitDevice);
14731487
reshade::unregister_event<reshade::addon_event::init_swapchain>(OnInitSwapchain);
14741488
reshade::unregister_event<reshade::addon_event::present>(OnPresent);
14751489
reshade::unregister_event<reshade::addon_event::draw>(OnVRSDraw);

0 commit comments

Comments
 (0)