mirror of
https://github.com/KytyPS5/KytyPS5.git
synced 2026-10-22 11:56:58 +02:00
gpu: centralize depth shading-rate handling
This commit is contained in:
@@ -24,7 +24,6 @@ constexpr auto MakeContextDispatchTable() {
|
|||||||
g_hw_ctx_func[Pm4::DB_DEPTH_CLEAR] = HwCtxSetDepthClear;
|
g_hw_ctx_func[Pm4::DB_DEPTH_CLEAR] = HwCtxSetDepthClear;
|
||||||
g_hw_ctx_func[Pm4::PA_SC_SCREEN_SCISSOR_TL] = HwCtxSetScreenScissor;
|
g_hw_ctx_func[Pm4::PA_SC_SCREEN_SCISSOR_TL] = HwCtxSetScreenScissor;
|
||||||
g_hw_ctx_func[Pm4::DB_STENCIL_INFO] = HwCtxSetStencilInfo;
|
g_hw_ctx_func[Pm4::DB_STENCIL_INFO] = HwCtxSetStencilInfo;
|
||||||
g_hw_ctx_func[Pm4::DB_SHADING_RATE_ENCODING] = HwCtxSetDepthShadingRateEncoding;
|
|
||||||
g_hw_ctx_func[Pm4::PA_SU_HARDWARE_SCREEN_OFFSET] = HwCtxSetHardwareScreenOffset;
|
g_hw_ctx_func[Pm4::PA_SU_HARDWARE_SCREEN_OFFSET] = HwCtxSetHardwareScreenOffset;
|
||||||
g_hw_ctx_func[Pm4::PA_SC_WINDOW_OFFSET] = HwCtxSetWindowOffset;
|
g_hw_ctx_func[Pm4::PA_SC_WINDOW_OFFSET] = HwCtxSetWindowOffset;
|
||||||
g_hw_ctx_func[Pm4::PA_SC_WINDOW_SCISSOR_TL] = HwCtxSetWindowScissor;
|
g_hw_ctx_func[Pm4::PA_SC_WINDOW_SCISSOR_TL] = HwCtxSetWindowScissor;
|
||||||
|
|||||||
@@ -45,8 +45,6 @@ uint32_t HwCtxSetStencilClear(CommandProcessor&, uint32_t, uint32_t, const uint3
|
|||||||
uint32_t HwCtxSetDepthClear(CommandProcessor&, uint32_t, uint32_t, const uint32_t*, uint32_t);
|
uint32_t HwCtxSetDepthClear(CommandProcessor&, uint32_t, uint32_t, const uint32_t*, uint32_t);
|
||||||
uint32_t HwCtxSetScreenScissor(CommandProcessor&, uint32_t, uint32_t, const uint32_t*, uint32_t);
|
uint32_t HwCtxSetScreenScissor(CommandProcessor&, uint32_t, uint32_t, const uint32_t*, uint32_t);
|
||||||
uint32_t HwCtxSetStencilInfo(CommandProcessor&, uint32_t, uint32_t, const uint32_t*, uint32_t);
|
uint32_t HwCtxSetStencilInfo(CommandProcessor&, uint32_t, uint32_t, const uint32_t*, uint32_t);
|
||||||
uint32_t HwCtxSetDepthShadingRateEncoding(CommandProcessor&, uint32_t, uint32_t,
|
|
||||||
const uint32_t*, uint32_t);
|
|
||||||
uint32_t HwCtxSetHardwareScreenOffset(CommandProcessor&, uint32_t, uint32_t, const uint32_t*,
|
uint32_t HwCtxSetHardwareScreenOffset(CommandProcessor&, uint32_t, uint32_t, const uint32_t*,
|
||||||
uint32_t);
|
uint32_t);
|
||||||
uint32_t HwCtxSetWindowOffset(CommandProcessor&, uint32_t, uint32_t, const uint32_t*, uint32_t);
|
uint32_t HwCtxSetWindowOffset(CommandProcessor&, uint32_t, uint32_t, const uint32_t*, uint32_t);
|
||||||
|
|||||||
@@ -599,17 +599,6 @@ static void HwCtxSetDepthShadingRateEncodingRegister(CommandProcessor& cp, uint3
|
|||||||
ctx.SetDepthRenderTarget(target);
|
ctx.SetDepthRenderTarget(target);
|
||||||
}
|
}
|
||||||
|
|
||||||
KYTY_HW_CTX_PARSER(HwCtxSetDepthShadingRateEncoding) {
|
|
||||||
auto num_values = KYTY_PM4_LEN(cmd_id) - 2u;
|
|
||||||
|
|
||||||
EXIT_NOT_IMPLEMENTED(num_values != 1);
|
|
||||||
EXIT_NOT_IMPLEMENTED(cmd_offset != Pm4::DB_SHADING_RATE_ENCODING);
|
|
||||||
|
|
||||||
HwCtxSetDepthShadingRateEncodingRegister(cp, buffer[0]);
|
|
||||||
|
|
||||||
return num_values;
|
|
||||||
}
|
|
||||||
|
|
||||||
static HW::EqaaControl ParseEqaaControl(uint32_t value) {
|
static HW::EqaaControl ParseEqaaControl(uint32_t value) {
|
||||||
HW::EqaaControl r;
|
HW::EqaaControl r;
|
||||||
|
|
||||||
|
|||||||
@@ -435,8 +435,6 @@ static void ZCheck(const HW::DepthRenderTarget& z, const HW::DepthControl& dc,
|
|||||||
|
|
||||||
if (z.z_info.format != Prospero::DepthFormat::kInvalid ||
|
if (z.z_info.format != Prospero::DepthFormat::kInvalid ||
|
||||||
z.stencil_info.format != Prospero::StencilFormat::kInvalid) {
|
z.stencil_info.format != Prospero::StencilFormat::kInvalid) {
|
||||||
EXIT_NOT_IMPLEMENTED(z.shading_rate_encoding != 0);
|
|
||||||
|
|
||||||
if (z.depth_view.current_mip_level != 0x00000000) {
|
if (z.depth_view.current_mip_level != 0x00000000) {
|
||||||
static std::atomic<uint32_t> log_count {0};
|
static std::atomic<uint32_t> log_count {0};
|
||||||
if (log_count.fetch_add(1, std::memory_order_relaxed) < 16) {
|
if (log_count.fetch_add(1, std::memory_order_relaxed) < 16) {
|
||||||
|
|||||||
Reference in New Issue
Block a user