mirror of
https://github.com/PCSX2/pcsx2.git
synced 2026-01-31 01:15:24 +01:00
Compare commits
50 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e4af1c4244 | ||
|
|
7c26ac5578 | ||
|
|
2948d50b0d | ||
|
|
48fefddcb2 | ||
|
|
f4d8af2f0d | ||
|
|
afa3108623 | ||
|
|
6fcfddf19a | ||
|
|
6d2f442cbd | ||
|
|
e8260e7191 | ||
|
|
48a4367a2c | ||
|
|
edd3540f34 | ||
|
|
111c32c5ed | ||
|
|
af22ca3ae0 | ||
|
|
5e2caa326c | ||
|
|
50f9f60341 | ||
|
|
65f61b143a | ||
|
|
10f4892b7e | ||
|
|
f71d518f75 | ||
|
|
c5b11fe484 | ||
|
|
068fd04f15 | ||
|
|
a461750b55 | ||
|
|
291df6a0e4 | ||
|
|
8afeb4ea61 | ||
|
|
b30f246900 | ||
|
|
7fd042b197 | ||
|
|
b6b3e364f2 | ||
|
|
70e5f18971 | ||
|
|
1fb35593d5 | ||
|
|
b1b9c32644 | ||
|
|
8eeed7d42c | ||
|
|
584493d945 | ||
|
|
da8e551e77 | ||
|
|
a717930d5a | ||
|
|
abc000f614 | ||
|
|
cd51f1def3 | ||
|
|
f5573cf0ab | ||
|
|
1d036a4897 | ||
|
|
f9eced6244 | ||
|
|
90a7253c66 | ||
|
|
31e065f83a | ||
|
|
571f443339 | ||
|
|
4a4157919c | ||
|
|
e73aa0e81b | ||
|
|
2343246315 | ||
|
|
e5f41ce175 | ||
|
|
8184f2eaa9 | ||
|
|
e0bb465945 | ||
|
|
55749a63eb | ||
|
|
aa1b8db3ea | ||
|
|
023713fd67 |
@@ -20736,6 +20736,9 @@ SLES-52676:
|
||||
SLES-52678:
|
||||
name: "Viewtiful Joe"
|
||||
region: "PAL-M5"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 5 # Fixes post processing alignment.
|
||||
nativeScaling: 2 # Aligns post processing.
|
||||
SLES-52680:
|
||||
name: "Intellivision Lives - The History of Video Gaming"
|
||||
region: "PAL-E"
|
||||
@@ -21206,6 +21209,10 @@ SLES-52835:
|
||||
name: "The Mummy"
|
||||
name-sort: "Mummy, The"
|
||||
region: "PAL-M6"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 5 # Aligns post processing.
|
||||
autoFlush: 1 # Fixes light penetrating objects and intensity.
|
||||
nativeScaling: 1 # Aligns post processing.
|
||||
SLES-52836:
|
||||
name: "Knight Rider 2"
|
||||
region: "PAL-M6"
|
||||
@@ -22970,6 +22977,9 @@ SLES-53452:
|
||||
SLES-53457:
|
||||
name: "Evil Dead - Regeneration"
|
||||
region: "PAL-E"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 5 # Fixes post processing alignment.
|
||||
nativeScaling: 1 # Aligns post processing.
|
||||
SLES-53458:
|
||||
name: "Shin Megami Tensei - Digital Devil Saga"
|
||||
region: "PAL-E"
|
||||
@@ -26235,20 +26245,35 @@ SLES-54448:
|
||||
name: "World Series of Poker - Tournament of Champions"
|
||||
region: "PAL-E"
|
||||
SLES-54449:
|
||||
name: "Chicken Little - Ace in Action"
|
||||
name: "Disney's Chicken Little - Ace in Action"
|
||||
region: "PAL-E"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 5 # Fixes post processing alignment.
|
||||
nativeScaling: 1 # Aligns post processing.
|
||||
SLES-54450:
|
||||
name: "Chicken Little - Aventures Intergalactiques"
|
||||
name: "Disney Chicken Little - Aventures Intergalactiques"
|
||||
region: "PAL-F"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 5 # Fixes post processing alignment.
|
||||
nativeScaling: 1 # Aligns post processing.
|
||||
SLES-54451:
|
||||
name: "Himmel und Huhn - Ace in Action"
|
||||
name: "Disneys Himmel und Huhn - Ace in Action"
|
||||
region: "PAL-G"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 5 # Fixes post processing alignment.
|
||||
nativeScaling: 1 # Aligns post processing.
|
||||
SLES-54452:
|
||||
name: "Disney Chicken Little - As en Acción"
|
||||
region: "PAL-S"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 5 # Fixes post processing alignment.
|
||||
nativeScaling: 1 # Aligns post processing.
|
||||
SLES-54453:
|
||||
name: "Chicken Little - Asso Spaziale!"
|
||||
name: "Disney Chicken Little - Asso Spaziale!"
|
||||
region: "PAL-I"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 5 # Fixes post processing alignment.
|
||||
nativeScaling: 1 # Aligns post processing.
|
||||
SLES-54454:
|
||||
name: "Disgaea 2 - Cursed Memories"
|
||||
region: "PAL-E"
|
||||
@@ -27038,7 +27063,8 @@ SLES-54711:
|
||||
region: "PAL-E"
|
||||
compat: 5
|
||||
gsHWFixes:
|
||||
roundSprite: 2 # Fixes font artifacts and reduces text box artifacts.
|
||||
halfPixelOffset: 5 # Fixes shadow positioning.
|
||||
nativeScaling: 2 # Aligns post processing and bloom.
|
||||
SLES-54712:
|
||||
name: "Action Man A.T.O.M. - Alpha Teens on Machines"
|
||||
region: "PAL-PL"
|
||||
@@ -30125,14 +30151,16 @@ SLES-82030:
|
||||
name: "Shadow Hearts - Covenant [Disc 1 of 2]"
|
||||
region: "PAL-M3"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 4 # Fixes shadow positioning.
|
||||
halfPixelOffset: 5 # Fixes shadow positioning.
|
||||
autoFlush: 2 # Makes the shadow monsters appear.
|
||||
nativeScaling: 2 # Aligns post processing and bloom.
|
||||
SLES-82031:
|
||||
name: "Shadow Hearts - Covenant [Disc 2 of 2]"
|
||||
region: "PAL-M3"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 4 # Fixes shadow positioning.
|
||||
halfPixelOffset: 5 # Fixes shadow positioning.
|
||||
autoFlush: 2 # Makes the shadow monsters appear.
|
||||
nativeScaling: 2 # Aligns post processing and bloom.
|
||||
memcardFilters:
|
||||
- "SLES-82030"
|
||||
SLES-82032:
|
||||
@@ -31390,8 +31418,12 @@ SLKA-25219:
|
||||
gsHWFixes:
|
||||
maximumBlendingLevel: 0 # Fixes unnecessary load on the GPU.
|
||||
SLKA-25220:
|
||||
name: "Viewtiful Joe - A New Hope"
|
||||
name: "뷰티플 죠 새로운 희망"
|
||||
name-en: "Viewtiful Joe - A New Hope"
|
||||
region: "NTSC-K"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 5 # Fixes post processing alignment.
|
||||
nativeScaling: 2 # Aligns post processing.
|
||||
SLKA-25221:
|
||||
name: "Busin 0 - Wizardry Alternative Neo"
|
||||
region: "NTSC-K"
|
||||
@@ -31764,8 +31796,12 @@ SLKA-25305:
|
||||
name: "Taito Memories - Gekan"
|
||||
region: "NTSC-K"
|
||||
SLKA-25306:
|
||||
name: "Evil Dead - Regeneration"
|
||||
name: "이블데드 - 리제너레이션"
|
||||
name-en: "Evil Dead - Regeneration"
|
||||
region: "NTSC-K"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 5 # Fixes post processing alignment.
|
||||
nativeScaling: 1 # Aligns post processing.
|
||||
SLKA-25307:
|
||||
name: "Dragon Ball Z - Sparking!"
|
||||
region: "NTSC-K"
|
||||
@@ -32435,8 +32471,12 @@ SLKA-25451:
|
||||
name: "WWE SmackDown! vs. Raw 2008"
|
||||
region: "NTSC-K"
|
||||
SLKA-25452:
|
||||
name: "Viewtiful Joe - A New Hope"
|
||||
name: "뷰티플 죠 새로운 희망"
|
||||
name-en: "Viewtiful Joe - A New Hope [BigHit Series]"
|
||||
region: "NTSC-K"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 5 # Fixes post processing alignment.
|
||||
nativeScaling: 2 # Aligns post processing.
|
||||
SLKA-25453:
|
||||
name: "Shin Onimusha - Dawn of Dreams [Disc 1 of 2]"
|
||||
region: "NTSC-K"
|
||||
@@ -34647,8 +34687,9 @@ SLPM-60214:
|
||||
name-en: "Shadow Hearts II [Trial]"
|
||||
region: "NTSC-J"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 4 # Fixes shadow positioning.
|
||||
halfPixelOffset: 5 # Fixes shadow positioning.
|
||||
autoFlush: 2 # Makes the shadow monsters appear.
|
||||
nativeScaling: 2 # Aligns post processing and bloom.
|
||||
SLPM-60215:
|
||||
name: "電撃PS2 / 電撃PlayStation D63"
|
||||
name-sort: "でんげき PS2 でんげきPlayStation D63"
|
||||
@@ -34681,8 +34722,9 @@ SLPM-60219:
|
||||
name-en: "Shadow Hearts II [Appendix Version]"
|
||||
region: "NTSC-J"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 4 # Fixes shadow positioning.
|
||||
halfPixelOffset: 5 # Fixes shadow positioning.
|
||||
autoFlush: 2 # Makes the shadow monsters appear.
|
||||
nativeScaling: 2 # Aligns post processing and bloom.
|
||||
SLPM-60220:
|
||||
name: "はじめの一歩2 VICTORIOUS ROAD [体験版]"
|
||||
name-sort: "はじめのいっぽ2 VICTORIOUS ROAD [たいけんばん]"
|
||||
@@ -34699,8 +34741,9 @@ SLPM-60226:
|
||||
name-en: "Shadow Hearts II [Trial]"
|
||||
region: "NTSC-J"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 4 # Fixes shadow positioning.
|
||||
halfPixelOffset: 5 # Fixes shadow positioning.
|
||||
autoFlush: 2 # Makes the shadow monsters appear.
|
||||
nativeScaling: 2 # Aligns post processing and bloom.
|
||||
SLPM-60228:
|
||||
name: "街道バトル2 CHAIN REACTION [体験版]"
|
||||
name-sort: "かいどうばとる2 CHAIN REACTION [たいけんばん]"
|
||||
@@ -34880,6 +34923,9 @@ SLPM-60264:
|
||||
name-sort: "しゃどうはーつ ふろむ・ざ・にゅー・わーるど [たいけんばん]"
|
||||
name-en: "Shadow Hearts - From the New World [Trial]"
|
||||
region: "NTSC-J"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 5 # Fixes shadow positioning.
|
||||
nativeScaling: 2 # Aligns post processing and bloom.
|
||||
SLPM-60265:
|
||||
name: "スチームボーイ [体験版]"
|
||||
name-sort: "すちーむぼーい [たいけんばん]"
|
||||
@@ -43939,6 +43985,9 @@ SLPM-65699:
|
||||
name-en: "Viewtiful Joe - Aratanaru Kibo"
|
||||
region: "NTSC-J"
|
||||
compat: 5
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 5 # Fixes post processing alignment.
|
||||
nativeScaling: 2 # Aligns post processing.
|
||||
SLPM-65700:
|
||||
name: "剣豪3"
|
||||
name-sort: "けんごう3"
|
||||
@@ -46096,7 +46145,8 @@ SLPM-66070:
|
||||
name-en: "Shadow Hearts - From the New World [PREMIUM BOX]"
|
||||
region: "NTSC-J"
|
||||
gsHWFixes:
|
||||
roundSprite: 2 # Fixes font artifacts and reduces text box artifacts.
|
||||
halfPixelOffset: 5 # Fixes shadow positioning.
|
||||
nativeScaling: 2 # Aligns post processing and bloom.
|
||||
SLPM-66071:
|
||||
name: "シャドウハーツ フロム・ザ・ニュー・ワールド"
|
||||
name-sort: "しゃどうはーつ ふろむ・ざ・にゅー・わーるど"
|
||||
@@ -46104,7 +46154,8 @@ SLPM-66071:
|
||||
region: "NTSC-J"
|
||||
compat: 5
|
||||
gsHWFixes:
|
||||
roundSprite: 2 # Fixes font artifacts and reduces text box artifacts.
|
||||
halfPixelOffset: 5 # Fixes shadow positioning.
|
||||
nativeScaling: 2 # Aligns post processing and bloom.
|
||||
SLPM-66072:
|
||||
name: "ファイトナイト ラウンド2"
|
||||
name-sort: "ふぁいとないと らうんど2"
|
||||
@@ -57613,16 +57664,18 @@ SLPS-25317:
|
||||
name-en: "Shadow Hearts II [Deluxe Pack] [Disc 1 of 2]"
|
||||
region: "NTSC-J"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 4 # Fixes shadow positioning.
|
||||
halfPixelOffset: 5 # Fixes shadow positioning.
|
||||
autoFlush: 2 # Makes the shadow monsters appear.
|
||||
nativeScaling: 2 # Aligns post processing and bloom.
|
||||
SLPS-25318:
|
||||
name: "シャドウハーツⅡ [DXパック] [ディスク2/2]"
|
||||
name-sort: "しゃどうはーつ2 [DXぱっく] [でぃすく2/2]"
|
||||
name-en: "Shadow Hearts II [Deluxe Pack] [Disc 2 of 2]"
|
||||
region: "NTSC-J"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 4 # Fixes shadow positioning.
|
||||
halfPixelOffset: 5 # Fixes shadow positioning.
|
||||
autoFlush: 2 # Makes the shadow monsters appear.
|
||||
nativeScaling: 2 # Aligns post processing and bloom.
|
||||
memcardFilters:
|
||||
- "SLPS-25317"
|
||||
SLPS-25319:
|
||||
@@ -57700,16 +57753,18 @@ SLPS-25334:
|
||||
name-en: "Shadow Hearts II [Standard Edition] [Disc 1 of 2]"
|
||||
region: "NTSC-J"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 4 # Fixes shadow positioning.
|
||||
halfPixelOffset: 5 # Fixes shadow positioning.
|
||||
autoFlush: 2 # Makes the shadow monsters appear.
|
||||
nativeScaling: 2 # Aligns post processing and bloom.
|
||||
SLPS-25335:
|
||||
name: "シャドウハーツⅡ [通常版] [ディスク2/2]"
|
||||
name-sort: "しゃどうはーつ2 [つうじょうばん] [でぃすく2/2]"
|
||||
name-en: "Shadow Hearts II [Standard Edition] [Disc 2 of 2]"
|
||||
region: "NTSC-J"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 4 # Fixes shadow positioning.
|
||||
halfPixelOffset: 5 # Fixes shadow positioning.
|
||||
autoFlush: 2 # Makes the shadow monsters appear.
|
||||
nativeScaling: 2 # Aligns post processing and bloom.
|
||||
memcardFilters:
|
||||
- "SLPS-25334"
|
||||
SLPS-25336:
|
||||
@@ -61976,16 +62031,18 @@ SLPS-73214:
|
||||
name-en: "Shadow Hearts II [Director's Cut] [PlayStation2 the Best] [Disc 1 of 2]"
|
||||
region: "NTSC-J"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 4 # Fixes shadow positioning.
|
||||
halfPixelOffset: 5 # Fixes shadow positioning.
|
||||
autoFlush: 2 # Makes the shadow monsters appear.
|
||||
nativeScaling: 2 # Aligns post processing and bloom.
|
||||
SLPS-73215:
|
||||
name: "シャドウハーツⅡ ディレクターズカット [PlayStation2 the Best] [ディスク2/2]"
|
||||
name-sort: "しゃどうはーつ2 でぃれくたーずかっと [PlayStation2 the Best] [でぃすく2/2]"
|
||||
name-en: "Shadow Hearts II [Director's Cut] [PlayStation2 the Best] [Disc 2 of 2]"
|
||||
region: "NTSC-J"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 4 # Fixes shadow positioning.
|
||||
halfPixelOffset: 5 # Fixes shadow positioning.
|
||||
autoFlush: 2 # Makes the shadow monsters appear.
|
||||
nativeScaling: 2 # Aligns post processing and bloom.
|
||||
memcardFilters:
|
||||
- "SLPS-73214"
|
||||
SLPS-73216:
|
||||
@@ -67465,6 +67522,9 @@ SLUS-20951:
|
||||
name: "Viewtiful Joe"
|
||||
region: "NTSC-U"
|
||||
compat: 5
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 5 # Fixes post processing alignment.
|
||||
nativeScaling: 2 # Aligns post processing.
|
||||
SLUS-20952:
|
||||
name: "Tak 2 - The Staff of Dreams"
|
||||
region: "NTSC-U"
|
||||
@@ -68073,8 +68133,9 @@ SLUS-21041:
|
||||
region: "NTSC-U"
|
||||
compat: 5
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 4 # Fixes shadow positioning.
|
||||
halfPixelOffset: 5 # Fixes shadow positioning.
|
||||
autoFlush: 2 # Makes the shadow monsters appear.
|
||||
nativeScaling: 2 # Aligns post processing and bloom.
|
||||
SLUS-21042:
|
||||
name: "Darkwatch"
|
||||
region: "NTSC-U"
|
||||
@@ -68090,8 +68151,9 @@ SLUS-21044:
|
||||
region: "NTSC-U"
|
||||
compat: 5
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 4 # Fixes shadow positioning.
|
||||
halfPixelOffset: 5 # Fixes shadow positioning.
|
||||
autoFlush: 2 # Makes the shadow monsters appear.
|
||||
nativeScaling: 2 # Aligns post processing and bloom.
|
||||
memcardFilters:
|
||||
- "SLUS-21041"
|
||||
SLUS-21045:
|
||||
@@ -68112,6 +68174,9 @@ SLUS-21048:
|
||||
name: "Evil Dead - Regeneration"
|
||||
region: "NTSC-U"
|
||||
compat: 5
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 5 # Fixes post processing alignment.
|
||||
nativeScaling: 1 # Aligns post processing.
|
||||
SLUS-21049:
|
||||
name: "Outlaw Volleyball Remixed"
|
||||
region: "NTSC-U"
|
||||
@@ -69917,7 +69982,8 @@ SLUS-21326:
|
||||
region: "NTSC-U"
|
||||
compat: 5
|
||||
gsHWFixes:
|
||||
roundSprite: 2 # Fixes font artifacts and reduces text box artifacts.
|
||||
halfPixelOffset: 5 # Fixes shadow positioning.
|
||||
nativeScaling: 2 # Aligns post processing and bloom.
|
||||
SLUS-21327:
|
||||
name: "Atelier Iris 2 - The Azoth of Destiny"
|
||||
region: "NTSC-U"
|
||||
@@ -70591,6 +70657,9 @@ SLUS-21419:
|
||||
SLUS-21420:
|
||||
name: "Disney's Chicken Little - Ace in Action"
|
||||
region: "NTSC-U"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 5 # Fixes post processing alignment.
|
||||
nativeScaling: 1 # Aligns post processing.
|
||||
SLUS-21421:
|
||||
name: "Spy Hunter - Nowhere to Run"
|
||||
region: "NTSC-U"
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -551,9 +551,18 @@ void GSDevice11::Destroy()
|
||||
m_rs.reset();
|
||||
|
||||
if (m_state.rt_view)
|
||||
{
|
||||
m_state.rt_view->Release();
|
||||
m_state.rt_view = nullptr;
|
||||
}
|
||||
m_state.cached_rt_view = nullptr;
|
||||
|
||||
if (m_state.dsv)
|
||||
{
|
||||
m_state.dsv->Release();
|
||||
m_state.dsv = nullptr;
|
||||
}
|
||||
m_state.cached_dsv = nullptr;
|
||||
|
||||
m_shader_cache.Close();
|
||||
|
||||
@@ -950,11 +959,13 @@ GSDevice::PresentResult GSDevice11::BeginPresent(bool frame_skip)
|
||||
m_state.rt_view->Release();
|
||||
m_state.rt_view = m_swap_chain_rtv.get();
|
||||
m_state.rt_view->AddRef();
|
||||
m_state.cached_rt_view = nullptr;
|
||||
if (m_state.dsv)
|
||||
{
|
||||
m_state.dsv->Release();
|
||||
m_state.dsv = nullptr;
|
||||
}
|
||||
m_state.cached_dsv = nullptr;
|
||||
|
||||
g_perfmon.Put(GSPerfMon::RenderPasses, 1);
|
||||
|
||||
@@ -2432,7 +2443,7 @@ void GSDevice11::PSUnbindConflictingSRVs(GSTexture* tex1, GSTexture* tex2)
|
||||
|
||||
void GSDevice11::OMSetDepthStencilState(ID3D11DepthStencilState* dss, u8 sref)
|
||||
{
|
||||
if (m_state.dss != dss || m_state.sref != sref)
|
||||
if (m_state.dss != dss || (dss && m_state.sref != sref))
|
||||
{
|
||||
m_state.dss = dss;
|
||||
m_state.sref = sref;
|
||||
@@ -2443,7 +2454,7 @@ void GSDevice11::OMSetDepthStencilState(ID3D11DepthStencilState* dss, u8 sref)
|
||||
|
||||
void GSDevice11::OMSetBlendState(ID3D11BlendState* bs, u8 bf)
|
||||
{
|
||||
if (m_state.bs != bs || m_state.bf != bf)
|
||||
if (m_state.bs != bs || (bs && m_state.bf != bf))
|
||||
{
|
||||
m_state.bs = bs;
|
||||
m_state.bf = bf;
|
||||
@@ -2480,6 +2491,7 @@ void GSDevice11::OMSetRenderTargets(GSTexture* rt, GSTexture* ds, const GSVector
|
||||
if (rtv)
|
||||
rtv->AddRef();
|
||||
m_state.rt_view = rtv;
|
||||
m_state.cached_rt_view = rt;
|
||||
}
|
||||
if (m_state.dsv != dsv)
|
||||
{
|
||||
@@ -2488,6 +2500,7 @@ void GSDevice11::OMSetRenderTargets(GSTexture* rt, GSTexture* ds, const GSVector
|
||||
if (dsv)
|
||||
dsv->AddRef();
|
||||
m_state.dsv = dsv;
|
||||
m_state.cached_dsv = ds;
|
||||
}
|
||||
if (changed)
|
||||
m_ctx->OMSetRenderTargets(1, &rtv, dsv);
|
||||
@@ -2728,11 +2741,31 @@ void GSDevice11::RenderHW(GSHWDrawConfig& config)
|
||||
config.ps.date = 3;
|
||||
config.alpha_second_pass.ps.date = 3;
|
||||
SetupPS(config.ps, nullptr, config.sampler);
|
||||
PSSetShaderResource(3, primid_texture);
|
||||
}
|
||||
|
||||
// Avoid changing framebuffer just to switch from rt+depth to rt and vice versa.
|
||||
GSTexture* draw_rt = colclip_rt ? colclip_rt : config.rt;
|
||||
GSTexture* draw_ds = config.ds;
|
||||
// Make sure no tex is bound as both rtv and srv at the same time.
|
||||
// All conflicts should've been taken care of by PSUnbindConflictingSRVs.
|
||||
// It is fine to do the optimiation when on slot 0 tex is fb, tex is ds, and slot 2 sw blend as they are copies bound to srv.
|
||||
if (!draw_rt && draw_ds && m_state.rt_view && m_state.cached_rt_view && m_state.rt_view == *(GSTexture11*)m_state.cached_rt_view &&
|
||||
m_state.cached_dsv == draw_ds && config.tex != m_state.cached_rt_view && m_state.cached_rt_view->GetSize() == draw_ds->GetSize())
|
||||
{
|
||||
draw_rt = m_state.cached_rt_view;
|
||||
}
|
||||
else if (!draw_ds && draw_rt && m_state.dsv && m_state.cached_dsv && m_state.dsv == *(GSTexture11*)m_state.cached_dsv &&
|
||||
m_state.cached_rt_view == draw_rt && config.tex != m_state.cached_dsv && m_state.cached_dsv->GetSize() == draw_rt->GetSize())
|
||||
{
|
||||
draw_ds = m_state.cached_dsv;
|
||||
}
|
||||
|
||||
OMSetRenderTargets(draw_rt, draw_ds, &config.scissor);
|
||||
|
||||
if (primid_texture)
|
||||
PSSetShaderResource(3, primid_texture);
|
||||
|
||||
SetupOM(config.depth, OMBlendSelector(config.colormask, config.blend), config.blend.constant);
|
||||
OMSetRenderTargets(colclip_rt ? colclip_rt : config.rt, config.ds, &config.scissor);
|
||||
DrawIndexedPrimitive();
|
||||
|
||||
if (config.blend_multi_pass.enable)
|
||||
|
||||
@@ -159,6 +159,8 @@ private:
|
||||
u8 bf;
|
||||
ID3D11RenderTargetView* rt_view;
|
||||
ID3D11DepthStencilView* dsv;
|
||||
GSTexture* cached_rt_view;
|
||||
GSTexture* cached_dsv;
|
||||
} m_state;
|
||||
|
||||
std::array<std::array<wil::com_ptr_nothrow<ID3D11Query>, 3>, NUM_TIMESTAMP_QUERIES> m_timestamp_queries = {};
|
||||
|
||||
@@ -2360,7 +2360,6 @@ void GSRendererHW::Draw()
|
||||
const u32 fm_mask = GSLocalMemory::m_psm[m_cached_ctx.FRAME.PSM].fmsk;
|
||||
|
||||
// Note required to compute TryAlphaTest below. So do it now.
|
||||
const GSDrawingEnvironment& env = *m_draw_env;
|
||||
const GSLocalMemory::psm_t& tex_psm = GSLocalMemory::m_psm[m_cached_ctx.TEX0.PSM];
|
||||
if (PRIM->TME && tex_psm.pal > 0)
|
||||
{
|
||||
@@ -3694,8 +3693,6 @@ void GSRendererHW::Draw()
|
||||
// Size here should match whichever is biggest, since that's probably what's going to happen with it further down.
|
||||
const int new_height = std::min(2048, std::max(t_size.y, static_cast<int>(vertical_size))) * ds->m_scale;
|
||||
const int new_width = std::min(2048, std::max(t_size.x, static_cast<int>(horizontal_size))) * ds->m_scale;
|
||||
const int height_diff = new_height - (ds->m_unscaled_size.y * ds->m_scale);
|
||||
const int width_diff = new_width - (ds->m_unscaled_size.x * ds->m_scale);
|
||||
|
||||
if (GSTexture* tex = g_gs_device->CreateDepthStencil(new_width, new_height, GSTexture::Format::DepthStencil, true))
|
||||
{
|
||||
|
||||
@@ -1911,7 +1911,7 @@ void GSDeviceOGL::SetupDATE(GSTexture* rt, GSTexture* ds, const GSVertexPT1* ver
|
||||
|
||||
OMSetRenderTargets(nullptr, ds, &GLState::scissor);
|
||||
{
|
||||
const GLint clear_color = 0;
|
||||
constexpr GLint clear_color = 0;
|
||||
glClearBufferiv(GL_STENCIL, 0, &clear_color);
|
||||
}
|
||||
m_convert.ps[SetDATMShader(datm)].Bind();
|
||||
@@ -1919,10 +1919,8 @@ void GSDeviceOGL::SetupDATE(GSTexture* rt, GSTexture* ds, const GSVertexPT1* ver
|
||||
// om
|
||||
|
||||
OMSetDepthStencilState(m_date.dss);
|
||||
if (GLState::blend)
|
||||
{
|
||||
glDisable(GL_BLEND);
|
||||
}
|
||||
OMSetBlendState(false);
|
||||
OMSetColorMaskState();
|
||||
|
||||
// ia
|
||||
|
||||
@@ -1930,18 +1928,12 @@ void GSDeviceOGL::SetupDATE(GSTexture* rt, GSTexture* ds, const GSVertexPT1* ver
|
||||
IASetVertexBuffer(vertices, 4);
|
||||
IASetPrimitiveTopology(GL_TRIANGLE_STRIP);
|
||||
|
||||
|
||||
// Texture
|
||||
|
||||
PSSetShaderResource(0, rt);
|
||||
PSSetSamplerState(m_convert.pt);
|
||||
|
||||
DrawPrimitive();
|
||||
|
||||
if (GLState::blend)
|
||||
{
|
||||
glEnable(GL_BLEND);
|
||||
}
|
||||
}
|
||||
|
||||
void GSDeviceOGL::IASetVAO(GLuint vao)
|
||||
@@ -2628,7 +2620,6 @@ void GSDeviceOGL::RenderHW(GSHWDrawConfig& config)
|
||||
psel.ps.date = 3;
|
||||
config.alpha_second_pass.ps.date = 3;
|
||||
SetupPipeline(psel);
|
||||
PSSetShaderResource(3, primid_texture);
|
||||
}
|
||||
|
||||
if (config.blend.IsEffective(config.colormask))
|
||||
@@ -2658,6 +2649,10 @@ void GSDeviceOGL::RenderHW(GSHWDrawConfig& config)
|
||||
}
|
||||
|
||||
OMSetRenderTargets(draw_rt, draw_ds, &config.scissor);
|
||||
|
||||
if (primid_texture)
|
||||
PSSetShaderResource(3, primid_texture);
|
||||
|
||||
OMSetColorMaskState(config.colormask);
|
||||
SetupOM(config.depth);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user