[GPU] Use polygon mode only for DualMode, not non-Disabled
This commit is contained in:
parent
3f156f26c4
commit
22ee200f3e
|
@ -1444,7 +1444,7 @@ bool PipelineCache::GetCurrentStateDescription(
|
|||
poly_offset_scale = regs[XE_GPU_REG_PA_SU_POLY_OFFSET_BACK_SCALE].f32;
|
||||
}
|
||||
}
|
||||
if (pa_su_sc_mode_cntl.poly_mode == xenos::PolygonModeEnable::kDisabled) {
|
||||
if (pa_su_sc_mode_cntl.poly_mode != xenos::PolygonModeEnable::kDualMode) {
|
||||
description_out.fill_mode_wireframe = 0;
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -334,7 +334,11 @@ union alignas(uint32_t) PA_SU_SC_MODE_CNTL {
|
|||
uint32_t cull_front : 1; // +0
|
||||
uint32_t cull_back : 1; // +1
|
||||
// 0 - front is CCW, 1 - front is CW.
|
||||
uint32_t face : 1; // +2
|
||||
uint32_t face : 1; // +2
|
||||
// The game Fuse uses poly_mode 2 for triangles, which is "reserved" on R6xx
|
||||
// and not defined on Adreno 2xx, but polymode_front/back_ptype are 0
|
||||
// (points) in this case in Fuse, which should not be respected for
|
||||
// non-kDualMode as the game wants to draw filled triangles.
|
||||
xenos::PolygonModeEnable poly_mode : 2; // +3
|
||||
xenos::PolygonType polymode_front_ptype : 3; // +5
|
||||
xenos::PolygonType polymode_back_ptype : 3; // +8
|
||||
|
|
|
@ -753,6 +753,10 @@ enum class TessellationMode : uint32_t {
|
|||
enum class PolygonModeEnable : uint32_t {
|
||||
kDisabled = 0, // Render triangles.
|
||||
kDualMode = 1, // Send 2 sets of 3 polygons with the specified polygon type.
|
||||
// The game Fuse uses 2 for triangles, which is "reserved" on R6xx and not
|
||||
// defined on Adreno 2xx, but polymode_front/back_ptype are 0 (points) in this
|
||||
// case in Fuse, which should not be respected for non-kDualMode as the game
|
||||
// wants to draw filled triangles.
|
||||
};
|
||||
|
||||
enum class PolygonType : uint32_t {
|
||||
|
|
Loading…
Reference in New Issue