Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e46c19391d | ||
|
|
3d453e6236 | ||
|
|
9392ccf124 | ||
|
|
16b9b5aa0c | ||
|
|
2df4744b53 | ||
|
|
faf82ccdd7 | ||
|
|
8f18e82931 | ||
|
|
7102ff8ecb | ||
|
|
385b844e2a | ||
|
|
518f571fcf | ||
|
|
e0d4318042 | ||
|
|
06ac01adb0 | ||
|
|
a6d49872a1 | ||
|
|
b0b4817162 | ||
|
|
9f776cfca7 | ||
|
|
5b1613087c | ||
|
|
b22a796f4b | ||
|
|
04cfc60756 | ||
|
|
6a3ff818e0 | ||
|
|
22b51d0c61 | ||
|
|
78ce48e4ca | ||
|
|
9510516e68 | ||
|
|
33ae95f4ae | ||
|
|
1cd118eccc | ||
|
|
4bf30b41a6 | ||
|
|
6390edb76d | ||
|
|
f0ba93d75f | ||
|
|
68ff82679f | ||
|
|
543d4dfc8e | ||
|
|
e3be392b8a | ||
|
|
b754fcc49c | ||
|
|
a4c37b5117 | ||
|
|
8206c7abac | ||
|
|
faacc62b10 | ||
|
|
b0a01ca629 | ||
|
|
945d5c373b | ||
|
|
cb04b133ea | ||
|
|
ff3de66bab | ||
|
|
3ce788b09c | ||
|
|
2a1b9278b9 | ||
|
|
842b5e0b3a | ||
|
|
2f83399798 | ||
|
|
2e52ca5753 | ||
|
|
69cd5ee0d1 | ||
|
|
1f0605c35d | ||
|
|
b9c28ef6a1 | ||
|
|
809a61f600 | ||
|
|
c7b24bad1a | ||
|
|
4244a6418d | ||
|
|
26044e18e1 | ||
|
|
04d08f0cf1 | ||
|
|
2bf037c7bb | ||
|
|
f6668ef01b | ||
|
|
20a775ed08 | ||
|
|
3379556d89 | ||
|
|
8e687924b8 | ||
|
|
d3e8c5e977 | ||
|
|
95e67e6533 | ||
|
|
bdd1785b04 | ||
|
|
f9e5ac191e | ||
|
|
f3a674c064 | ||
|
|
4aa35bc835 | ||
|
|
894f2544a0 | ||
|
|
ceffda663c | ||
|
|
27e7fa10d9 | ||
|
|
d3bd4f42cf | ||
|
|
5a8fb951dd | ||
|
|
27942142cf | ||
|
|
db647f9a40 | ||
|
|
35aeb0cf55 | ||
|
|
3423d3c6a5 | ||
|
|
607bc18ad4 |
88 changed files with 3702 additions and 1210 deletions
|
|
@ -18,7 +18,6 @@ enum class BooleanSetting(override val key: String) : AbstractBooleanSetting {
|
|||
SKIP_CPU_INNER_INVALIDATION("skip_cpu_inner_invalidation"),
|
||||
FIX_BLOOM_EFFECTS("fix_bloom_effects"),
|
||||
EMULATE_BGR565("emulate_bgr565"),
|
||||
RESCALE_HACK("rescale_hack"),
|
||||
CPUOPT_UNSAFE_HOST_MMU("cpuopt_unsafe_host_mmu"),
|
||||
USE_DOCKED_MODE("use_docked_mode"),
|
||||
USE_AUTO_STUB("use_auto_stub"),
|
||||
|
|
|
|||
|
|
@ -624,6 +624,7 @@ abstract class SettingsItem(
|
|||
IntSetting.FSR_SHARPENING_SLIDER,
|
||||
titleId = R.string.fsr_sharpness,
|
||||
descriptionId = R.string.fsr_sharpness_description,
|
||||
max = 200,
|
||||
units = "%"
|
||||
)
|
||||
)
|
||||
|
|
@ -876,13 +877,6 @@ abstract class SettingsItem(
|
|||
descriptionId = R.string.fix_bloom_effects_description
|
||||
)
|
||||
)
|
||||
put(
|
||||
SwitchSetting(
|
||||
BooleanSetting.RESCALE_HACK,
|
||||
titleId = R.string.rescale_hack,
|
||||
descriptionId = R.string.rescale_hack_description
|
||||
)
|
||||
)
|
||||
put(
|
||||
SwitchSetting(
|
||||
BooleanSetting.EMULATE_BGR565,
|
||||
|
|
|
|||
|
|
@ -1182,7 +1182,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|||
container,
|
||||
IntSetting.FSR_SHARPENING_SLIDER,
|
||||
minValue = 0,
|
||||
maxValue = 100,
|
||||
maxValue = 200,
|
||||
units = "%"
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ void AndroidConfig::SaveAllValues() {
|
|||
}
|
||||
|
||||
void AndroidConfig::ReadAndroidValues() {
|
||||
Settings::values.rescale_hack.SetValue(false);
|
||||
ReadAndroidUIValues();
|
||||
if (global) {
|
||||
ReadUIValues();
|
||||
|
|
|
|||
|
|
@ -514,8 +514,6 @@
|
|||
<string name="fix_bloom_effects_description">يقلل من ضبابية التوهج في LA/EOW (Adreno A6XX - A7XX/ Turnip)، ويزيل التوهج في Burnout. تحذير: قد يسبب تشوهات رسومية في ألعاب أخرى.</string>
|
||||
<string name="emulate_bgr565">محاكاة BGR565</string>
|
||||
<string name="emulate_bgr565_description">يُصلح مشاكل انعكاس الألوان في الألعاب أو ظهور تشوهات غريبة أو ظلال غريبة.</string>
|
||||
<string name="rescale_hack">تفعيل ميزة إعادة التحجيم القديمة</string>
|
||||
<string name="rescale_hack_description">يُمكّن هذا الخيار من التعامل مع عملية إعادة تحجيم الألعاب بطريقة تقليدية باستخدام مسار إعادة التحجيم السريع</string>
|
||||
<string name="renderer_asynchronous_shaders">استخدم تظليل غير متزامن</string>
|
||||
<string name="renderer_asynchronous_shaders_description">يقوم بتجميع التظليل بشكل غير متزامن. قد يقلل ذلك من التقطعات ولكنه قد يؤدي أيضًا إلى حدوث أخطاء.</string>
|
||||
<string name="gpu_unswizzle_settings">إعدادات إلغاء ترتيب بيانات وحدة معالجة الرسومات</string>
|
||||
|
|
@ -1088,7 +1086,6 @@
|
|||
<string name="theme_mode_light">فاتح</string>
|
||||
<string name="theme_mode_dark">داكن</string>
|
||||
|
||||
<string name="multiplier_none">لا شيء</string>
|
||||
|
||||
<!-- Black backgrounds theme -->
|
||||
<string name="use_black_backgrounds">خلفيات سوداء</string>
|
||||
|
|
|
|||
|
|
@ -1004,7 +1004,6 @@ Wirklich fortfahren?</string>
|
|||
<string name="theme_mode_light">Hell</string>
|
||||
<string name="theme_mode_dark">Dunkel</string>
|
||||
|
||||
<string name="multiplier_none">Keine</string>
|
||||
|
||||
<!-- Black backgrounds theme -->
|
||||
<string name="use_black_backgrounds">Schwarze Hintergründe</string>
|
||||
|
|
|
|||
|
|
@ -506,8 +506,6 @@
|
|||
<string name="fix_bloom_effects_description">Reduce el efecto de resplandor en LA/EOW (Adreno A6XX - A7XX/ Turnip), elimina el resplandor en Burnout. Advertencia: puede causar artefactos gráficos en otros juegos.</string>
|
||||
<string name="emulate_bgr565">Emular BGR565</string>
|
||||
<string name="emulate_bgr565_description">Soluciona problemas con colores invertidos en juegos, artefactos o sombras extrañas.</string>
|
||||
<string name="rescale_hack">Activar la pasada de reescalado heredada</string>
|
||||
<string name="rescale_hack_description">Permite el manejo de versiones anteriores para el paso de configuración de reescalado para juegos mediante el uso de una ruta de reescalado rápida.</string>
|
||||
<string name="renderer_asynchronous_shaders">Usar sombreadores asíncronos</string>
|
||||
<string name="renderer_asynchronous_shaders_description">Compila los sombreadores de forma asíncrona. Esto puede reducir los tirones, pero también puede introducir errores gráficos.</string>
|
||||
<string name="gpu_unswizzle_settings">Ajustes de desentrelazado de la GPU</string>
|
||||
|
|
@ -1080,7 +1078,6 @@
|
|||
<string name="theme_mode_light">Claro</string>
|
||||
<string name="theme_mode_dark">Oscuro</string>
|
||||
|
||||
<string name="multiplier_none">Nada</string>
|
||||
|
||||
<!-- Black backgrounds theme -->
|
||||
<string name="use_black_backgrounds">Fondos oscuros</string>
|
||||
|
|
|
|||
|
|
@ -808,9 +808,6 @@
|
|||
<string name="multiplier_x4">x4</string>
|
||||
<string name="multiplier_x8">x8</string>
|
||||
<string name="multiplier_x16">x16</string>
|
||||
<string name="multiplier_x32">x32</string>
|
||||
<string name="multiplier_x64">x64</string>
|
||||
<string name="multiplier_none">None</string>
|
||||
|
||||
<!-- Black backgrounds theme -->
|
||||
<string name="use_black_backgrounds">پسزمینه مشکی</string>
|
||||
|
|
|
|||
|
|
@ -1016,7 +1016,6 @@
|
|||
<string name="theme_mode_light">Lumineux</string>
|
||||
<string name="theme_mode_dark">Sombre</string>
|
||||
|
||||
<string name="multiplier_none">Aucun</string>
|
||||
|
||||
<!-- Black backgrounds theme -->
|
||||
<string name="use_black_backgrounds">Arrière-plan noir</string>
|
||||
|
|
|
|||
|
|
@ -948,7 +948,6 @@
|
|||
<string name="theme_mode_light">Jasny</string>
|
||||
<string name="theme_mode_dark">Ciemny</string>
|
||||
|
||||
<string name="multiplier_none">Brak</string>
|
||||
|
||||
<!-- Black backgrounds theme -->
|
||||
<string name="use_black_backgrounds">Czarne tła</string>
|
||||
|
|
|
|||
|
|
@ -897,7 +897,6 @@
|
|||
<string name="theme_mode_light">Claro</string>
|
||||
<string name="theme_mode_dark">Escuro</string>
|
||||
|
||||
<string name="multiplier_none">Nenhum</string>
|
||||
|
||||
<!-- Black backgrounds theme -->
|
||||
<string name="use_black_backgrounds">Planos de fundo pretos</string>
|
||||
|
|
|
|||
|
|
@ -510,8 +510,6 @@
|
|||
<string name="fix_bloom_effects_description">Частично убирает размытие в LA/EOW (Adreno A6XX - A7XX/ Turnip), полностью отключает его в Burnout. Внимание: может вызывать графические артефакты в других играх.</string>
|
||||
<string name="emulate_bgr565">Эмулировать BGR565</string>
|
||||
<string name="emulate_bgr565_description">Исправляет проблемы с инвертированными цветами в играх, а также со странными артефактами или некорректными тенями.</string>
|
||||
<string name="rescale_hack">Включить старый метод изменения разрешения</string>
|
||||
<string name="rescale_hack_description">Включает старый метод обработки этапа перенастройки масштабирования для игр за счёт использования быстрого алгоритма перемасштабирования.</string>
|
||||
<string name="renderer_asynchronous_shaders">Использовать асинхронные шейдеры</string>
|
||||
<string name="renderer_asynchronous_shaders_description">Компилирует шейдеры асинхронно. Это может уменьшить подтормаживания, но также может вызвать графические артефакты.</string>
|
||||
<string name="gpu_unswizzle_settings">Настройки распаковки текстур (Unswizzle)</string>
|
||||
|
|
@ -1084,7 +1082,6 @@
|
|||
<string name="theme_mode_light">Светлая</string>
|
||||
<string name="theme_mode_dark">Темная</string>
|
||||
|
||||
<string name="multiplier_none">Отключено</string>
|
||||
|
||||
<!-- Black backgrounds theme -->
|
||||
<string name="use_black_backgrounds">Чёрный фон</string>
|
||||
|
|
|
|||
|
|
@ -505,8 +505,6 @@
|
|||
<string name="fix_bloom_effects_description">Зменшує розмиття світіння в LA/EOW (Adreno A6XX–A7XX / Turnip), прибирає світіння в Burnout. Увага: може спричинити графічні артефакти в інших іграх.</string>
|
||||
<string name="emulate_bgr565">Емулювати BGR565</string>
|
||||
<string name="emulate_bgr565_description">Виправляє проблеми з інвертованими кольорами в іграх або дивними артефактами чи тінями.</string>
|
||||
<string name="rescale_hack">Увімкнути застаріле масштабування</string>
|
||||
<string name="rescale_hack_description">Вмикає застарілу обробку масштабування для ігор, використовуючи швидкий шлях масштабування</string>
|
||||
<string name="renderer_asynchronous_shaders">Асинхронні шейдери</string>
|
||||
<string name="renderer_asynchronous_shaders_description">Компілює шейдери асинхронно. Це може зменшити затримки, але також може спричинити графічні баги.</string>
|
||||
<string name="gpu_unswizzle_settings">Налаштування розпакування за допомогою ГП</string>
|
||||
|
|
@ -1066,7 +1064,6 @@
|
|||
<string name="theme_mode_light">Світла</string>
|
||||
<string name="theme_mode_dark">Темна</string>
|
||||
|
||||
<string name="multiplier_none">Жодного</string>
|
||||
|
||||
<!-- Black backgrounds theme -->
|
||||
<string name="use_black_backgrounds">Чорний фон</string>
|
||||
|
|
|
|||
|
|
@ -504,8 +504,6 @@
|
|||
<string name="fix_bloom_effects_description">减少《智慧的再现》和《众神的三角力量2》(Adreno A6XX - A7XX/ Turnip)中的 bloom 模糊,并移除《Burnout》中的 bloom 效果。警告:可能会导致在其他游戏中出现图形异常。</string>
|
||||
<string name="emulate_bgr565">模拟 BGR565</string>
|
||||
<string name="emulate_bgr565_description">修复游戏中的颜色反转或是异常的画面瑕疵或阴影问题</string>
|
||||
<string name="rescale_hack">启用旧版缩放处理</string>
|
||||
<string name="rescale_hack_description">启用通过使用快速缩放路径,来为游戏提供缩放配置处理的传统处理方式</string>
|
||||
<string name="renderer_asynchronous_shaders">使用异步着色器</string>
|
||||
<string name="renderer_asynchronous_shaders_description">以异步方式编译着色器。采用此方式或可减少卡顿,但也可能引入故障点。</string>
|
||||
<string name="gpu_unswizzle_settings">GPU Unswizzle 设置</string>
|
||||
|
|
@ -1078,7 +1076,6 @@
|
|||
<string name="theme_mode_light">浅色</string>
|
||||
<string name="theme_mode_dark">深色</string>
|
||||
|
||||
<string name="multiplier_none">无</string>
|
||||
|
||||
<!-- Black backgrounds theme -->
|
||||
<string name="use_black_backgrounds">使用黑色背景</string>
|
||||
|
|
|
|||
|
|
@ -926,7 +926,6 @@
|
|||
<string name="theme_mode_light">淺色</string>
|
||||
<string name="theme_mode_dark">深色</string>
|
||||
|
||||
<string name="multiplier_none">無</string>
|
||||
|
||||
<!-- Black backgrounds theme -->
|
||||
<string name="use_black_backgrounds">黑色背景</string>
|
||||
|
|
|
|||
|
|
@ -513,9 +513,6 @@
|
|||
<item>@string/multiplier_x4</item>
|
||||
<item>@string/multiplier_x8</item>
|
||||
<item>@string/multiplier_x16</item>
|
||||
<item>@string/multiplier_x32</item>
|
||||
<item>@string/multiplier_x64</item>
|
||||
<item>@string/multiplier_none</item>
|
||||
</string-array>
|
||||
<integer-array name="anisoValues">
|
||||
<item>0</item>
|
||||
|
|
@ -524,9 +521,6 @@
|
|||
<item>3</item>
|
||||
<item>4</item>
|
||||
<item>5</item>
|
||||
<item>6</item>
|
||||
<item>7</item>
|
||||
<item>8</item>
|
||||
</integer-array>
|
||||
|
||||
<string-array name="verticalAlignmentEntries">
|
||||
|
|
|
|||
|
|
@ -581,8 +581,6 @@
|
|||
<string name="fix_bloom_effects_description">Reduces bloom blur in LA/EOW (Adreno A6XX - A7XX/ Turnip), removes bloom in Burnout. Warning: may cause graphical artifacts in other games.</string>
|
||||
<string name="emulate_bgr565">Emulate BGR565</string>
|
||||
<string name="emulate_bgr565_description">Fixes problems with inverted colors in games or strange artifacts or strange shadows.</string>
|
||||
<string name="rescale_hack">Enable Legacy Rescale Pass</string>
|
||||
<string name="rescale_hack_description">Enables a legacy handling for the rescale configuration pass for games by using a quick rescale path</string>
|
||||
<string name="renderer_asynchronous_shaders">Use asynchronous shaders</string>
|
||||
<string name="renderer_asynchronous_shaders_description">Compiles shaders asynchronously. This may reduce stutters but may also introduce glitches.</string>
|
||||
<string name="gpu_unswizzle_settings">GPU Unswizzle Settings</string>
|
||||
|
|
@ -1246,9 +1244,6 @@
|
|||
<string name="multiplier_x4" translatable="false">x4</string>
|
||||
<string name="multiplier_x8" translatable="false">x8</string>
|
||||
<string name="multiplier_x16" translatable="false">x16</string>
|
||||
<string name="multiplier_x32" translatable="false">x32</string>
|
||||
<string name="multiplier_x64" translatable="false">x64</string>
|
||||
<string name="multiplier_none">None</string>
|
||||
|
||||
<!-- Black backgrounds theme -->
|
||||
<string name="use_black_backgrounds">Black backgrounds</string>
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ ENUM(TimeZone, Auto, Default, Cet, Cst6Cdt, Cuba, Eet, Egypt, Eire, Est, Est5Edt
|
|||
GmtPlusZero, GmtMinusZero, GmtZero, Greenwich, Hongkong, Hst, Iceland, Iran, Israel, Jamaica,
|
||||
Japan, Kwajalein, Libya, Met, Mst, Mst7Mdt, Navajo, Nz, NzChat, Poland, Portugal, Prc, Pst8Pdt,
|
||||
Roc, Rok, Singapore, Turkey, Uct, Universal, Utc, WSu, Wet, Zulu);
|
||||
ENUM(AnisotropyMode, Automatic, Default, X2, X4, X8, X16, X32, X64, None);
|
||||
ENUM(AnisotropyMode, Automatic, Default, X2, X4, X8, X16);
|
||||
ENUM(AstcDecodeMode, Cpu, Gpu, CpuAsynchronous);
|
||||
ENUM(AstcRecompression, Uncompressed, Bc1, Bc3);
|
||||
ENUM(FramePacingMode, Target_Auto, Target_30, Target_60, Target_90, Target_120);
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include <algorithm>
|
||||
#include <cstring>
|
||||
#include "common/assert.h"
|
||||
#include "common/logging.h"
|
||||
|
|
@ -264,7 +265,7 @@ NvResult nvhost_ctrl_gpu::ZCullGetInfo(IoctlNvgpuGpuZcullGetInfoArgs& params) {
|
|||
}
|
||||
|
||||
NvResult nvhost_ctrl_gpu::ZBCSetTable(IoctlZbcSetTable& params) {
|
||||
if (params.type > supported_types) {
|
||||
if (params.type == 0 || params.type > supported_types) {
|
||||
LOG_ERROR(Service_NVDRV, "ZBCSetTable: invalid type {:#x}", params.type);
|
||||
return NvResult::BadParameter;
|
||||
}
|
||||
|
|
@ -279,42 +280,61 @@ NvResult nvhost_ctrl_gpu::ZBCSetTable(IoctlZbcSetTable& params) {
|
|||
color_entry.format = params.format;
|
||||
color_entry.ref_cnt = 1u;
|
||||
|
||||
auto color_it = std::ranges::find_if(zbc_colors,
|
||||
[&](const ZbcColorEntry& color_in_question) {
|
||||
return color_entry.format == color_in_question.format &&
|
||||
color_entry.color_ds == color_in_question.color_ds &&
|
||||
color_entry.color_l2 == color_in_question.color_l2;
|
||||
});
|
||||
const auto color_end = zbc_colors.begin() + zbc_used_color_entries;
|
||||
auto color_it = std::find_if(zbc_colors.begin(), color_end,
|
||||
[&](const ZbcColorEntry& color_in_question) {
|
||||
return color_entry.format == color_in_question.format &&
|
||||
color_entry.color_ds == color_in_question.color_ds &&
|
||||
color_entry.color_l2 == color_in_question.color_l2;
|
||||
});
|
||||
|
||||
if (color_it != zbc_colors.end()) {
|
||||
if (color_it != color_end) {
|
||||
++color_it->ref_cnt;
|
||||
LOG_DEBUG(Service_NVDRV, "ZBCSetTable: reused color entry fmt={:#x}, ref_cnt={:#x}",
|
||||
params.format, color_it->ref_cnt);
|
||||
} else {
|
||||
zbc_colors.push_back(color_entry);
|
||||
LOG_DEBUG(Service_NVDRV, "ZBCSetTable: added color entry fmt={:#x}, index={:#x}",
|
||||
params.format, zbc_colors.size() - 1);
|
||||
break;
|
||||
}
|
||||
|
||||
if (zbc_used_color_entries >= ZBC_TABLE_SIZE) {
|
||||
LOG_WARNING(Service_NVDRV, "ZBCSetTable: color table is full, fmt={:#x}",
|
||||
params.format);
|
||||
return NvResult::InsufficientMemory;
|
||||
}
|
||||
|
||||
zbc_colors[zbc_used_color_entries] = color_entry;
|
||||
LOG_DEBUG(Service_NVDRV, "ZBCSetTable: added color entry fmt={:#x}, index={:#x}",
|
||||
params.format, zbc_used_color_entries);
|
||||
++zbc_used_color_entries;
|
||||
break;
|
||||
}
|
||||
case ZBCTypes::depth: {
|
||||
ZbcDepthEntry depth_entry{params.depth, params.format, 1u};
|
||||
|
||||
auto depth_it = std::ranges::find_if(zbc_depths,
|
||||
[&](const ZbcDepthEntry& depth_entry_in_question) {
|
||||
return depth_entry.format == depth_entry_in_question.format &&
|
||||
depth_entry.depth == depth_entry_in_question.depth;
|
||||
});
|
||||
const auto depth_end = zbc_depths.begin() + zbc_used_depth_entries;
|
||||
auto depth_it = std::find_if(zbc_depths.begin(), depth_end,
|
||||
[&](const ZbcDepthEntry& depth_entry_in_question) {
|
||||
return depth_entry.format == depth_entry_in_question.format &&
|
||||
depth_entry.depth == depth_entry_in_question.depth;
|
||||
});
|
||||
|
||||
if (depth_it != zbc_depths.end()) {
|
||||
if (depth_it != depth_end) {
|
||||
++depth_it->ref_cnt;
|
||||
LOG_DEBUG(Service_NVDRV, "ZBCSetTable: reused depth entry fmt={:#x}, ref_cnt={:#x}",
|
||||
depth_entry.format, depth_it->ref_cnt);
|
||||
} else {
|
||||
zbc_depths.push_back(depth_entry);
|
||||
LOG_DEBUG(Service_NVDRV, "ZBCSetTable: added depth entry fmt={:#x}, index={:#x}",
|
||||
depth_entry.format, zbc_depths.size() - 1);
|
||||
break;
|
||||
}
|
||||
|
||||
if (zbc_used_depth_entries >= ZBC_TABLE_SIZE) {
|
||||
LOG_WARNING(Service_NVDRV, "ZBCSetTable: depth table is full, fmt={:#x}",
|
||||
depth_entry.format);
|
||||
return NvResult::InsufficientMemory;
|
||||
}
|
||||
|
||||
zbc_depths[zbc_used_depth_entries] = depth_entry;
|
||||
LOG_DEBUG(Service_NVDRV, "ZBCSetTable: added depth entry fmt={:#x}, index={:#x}",
|
||||
depth_entry.format, zbc_used_depth_entries);
|
||||
++zbc_used_depth_entries;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -329,10 +349,16 @@ NvResult nvhost_ctrl_gpu::ZBCQueryTable(IoctlZbcQueryTable& params) {
|
|||
|
||||
std::scoped_lock lk(zbc_mutex);
|
||||
|
||||
if (params.type == 0) {
|
||||
params.index_size = ZBC_TABLE_SIZE;
|
||||
return NvResult::Success;
|
||||
}
|
||||
|
||||
switch (static_cast<ZBCTypes>(params.type)) {
|
||||
case ZBCTypes::color: {
|
||||
if (params.index_size >= zbc_colors.size()) {
|
||||
LOG_ERROR(Service_NVDRV, "ZBCQueryTable: invalid color index {:#x}", params.index_size);
|
||||
if (params.index_size >= zbc_used_color_entries) {
|
||||
LOG_ERROR(Service_NVDRV, "ZBCQueryTable: invalid color index {:#x}",
|
||||
params.index_size);
|
||||
return NvResult::BadParameter;
|
||||
}
|
||||
|
||||
|
|
@ -342,12 +368,13 @@ NvResult nvhost_ctrl_gpu::ZBCQueryTable(IoctlZbcQueryTable& params) {
|
|||
params.depth = 0;
|
||||
params.ref_cnt = colors.ref_cnt;
|
||||
params.format = colors.format;
|
||||
params.index_size = static_cast<u32>(zbc_colors.size());
|
||||
params.index_size = zbc_used_color_entries;
|
||||
break;
|
||||
}
|
||||
case ZBCTypes::depth: {
|
||||
if (params.index_size >= zbc_depths.size()) {
|
||||
LOG_ERROR(Service_NVDRV, "ZBCQueryTable: invalid depth index {:#x}", params.index_size);
|
||||
if (params.index_size >= zbc_used_depth_entries) {
|
||||
LOG_ERROR(Service_NVDRV, "ZBCQueryTable: invalid depth index {:#x}",
|
||||
params.index_size);
|
||||
return NvResult::BadParameter;
|
||||
}
|
||||
|
||||
|
|
@ -357,7 +384,8 @@ NvResult nvhost_ctrl_gpu::ZBCQueryTable(IoctlZbcQueryTable& params) {
|
|||
params.depth = depth_entry.depth;
|
||||
params.ref_cnt = depth_entry.ref_cnt;
|
||||
params.format = depth_entry.format;
|
||||
params.index_size = static_cast<u32>(zbc_depths.size());
|
||||
params.index_size = zbc_used_depth_entries;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include <vector>
|
||||
#include <array>
|
||||
|
||||
#include "common/common_funcs.h"
|
||||
#include "common/common_types.h"
|
||||
|
|
@ -212,10 +212,14 @@ private:
|
|||
Kernel::KEvent* unknown_event;
|
||||
|
||||
// ZBC Tables
|
||||
static constexpr u32 ZBC_TABLE_SIZE = 15u;
|
||||
static constexpr u32 supported_types = 2u;
|
||||
|
||||
std::mutex zbc_mutex{};
|
||||
std::vector<ZbcColorEntry> zbc_colors{};
|
||||
std::vector<ZbcDepthEntry> zbc_depths{};
|
||||
const u32 supported_types = 2u;
|
||||
std::array<ZbcColorEntry, ZBC_TABLE_SIZE> zbc_colors{};
|
||||
std::array<ZbcDepthEntry, ZBC_TABLE_SIZE> zbc_depths{};
|
||||
u32 zbc_used_color_entries{};
|
||||
u32 zbc_used_depth_entries{};
|
||||
};
|
||||
|
||||
} // namespace Service::Nvidia::Devices
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue