Logan McNaughton
cb90bb95ed
Cleanup FB Texture caching code
2018-02-26 21:15:51 +07:00
Sergey Lipskiy
b18ae00bfd
Correct next buffer detection in FrameBufferList::renderBuffer().
...
Fixed flickering in WDC.
2018-02-18 15:33:21 +07:00
Sergey Lipskiy
9b2f50ca67
Fix rendering in widescreen resolutions when fb emulation disabled, #1700
2018-01-05 15:27:19 +07:00
Sergey Lipskiy
fbd4a9a016
Unbind FBO before clearing frame buffers list.
...
Fixed memory leak on graphics context destroy.
2017-11-19 19:55:13 +07:00
Sergey Lipskiy
26623cec1f
Code cleanup: fix issues in GLideN64 found by static code analyser.
2017-11-18 22:07:27 +07:00
Sergey Lipskiy
5a037474a2
Code cleanup: fix compilation warnings.
2017-11-15 15:07:52 +07:00
Sergey Lipskiy
bc1f2d37d4
Code cleanup: remove commented code for blur post filter.
...
It will not be refactored.
2017-10-24 20:36:08 +07:00
Sergey Lipskiy
70c540b073
Rewrite fix for #1539 : keep in tile descriptor start address of frame buffer, not pointer on it.
...
Should be more safe.
2017-09-29 22:25:56 +07:00
Sergey Lipskiy
203c53307d
Reset gDPTile::frameBuffer if it points to removed buffer.
...
Fixed Paper Mario: Red Station Crashing #1539
2017-09-29 17:20:07 +07:00
Sergey Lipskiy
57da925a14
Check for overlapping frame buffers in FrameBufferList::removeIntersections()
...
Fixed Mario Tennis - missing bottom half of scoreboard #1564
Problem:
Top Gear Hyper Bike has overlapping frame buffers.
That is start address of a buffer points on last line in previous buffer.
When new buffer intersects with prevois one, plugin removes old buffer.
That causes black screen in case of Top Gear Hyper Bike.
FrameBuffer::updateEndAddress() was modified in commit 17eb8696ea
to fix it.
It sets buffer end address using buffer height - 1.
This fix causes issue with Mario Tennis scoreboard #1564
HW buffer is not detected because end address is wrong.
Solution:
Add another test for intersecting buffers.
It checks that the buffers are not just arbitrary intersected ones,
but it is sequence of two slighly overlapping buffers.
In that case buffer is not removed, but its end address is corrected,
because buffers address space must not intersect.
2017-09-26 16:31:24 +07:00
Sergey Lipskiy
032da85357
Reset m_cleared and m_RdramCopy for depth buffer after software render.
...
Fixed #1594 Mario Tennis VS screen: line flickers
2017-09-26 15:23:07 +07:00
Sergey Lipskiy
24b041b86e
Set fullscreen scissor at the end of FrameBufferList::renderBuffer()
...
Fixed clipped screen issue with OBS studio, #1515
2017-08-08 22:49:28 +07:00
Sergey Lipskiy
c907c3013a
Implement Debugger.
2017-06-25 15:35:48 +07:00
Sergey Lipskiy
ee60040a78
Rewrite debug logging
2017-06-25 15:02:36 +07:00
Sergey Lipskiy
e9436b7136
FrameBufferList::renderBuffer() : correct Y offset in source buffer.
...
Fixed screen shake in Lode Runner 3D #301
The game uses weird way to work in interlaced mode.
2017-04-12 15:32:01 +07:00
Sergey Lipskiy
175c733d56
Code cleanup: remove unused variables.
2017-04-12 15:27:24 +07:00
Sergey Lipskiy
5e51b386f1
Make Resident Evil 2 playable.
2017-04-02 12:02:38 +07:00
Sergey Lipskiy
4f5759ef46
Fix validity check for depth buffer.
...
Fixed Pokemon Stadium Menu Items Missing (Regression) #1446
2017-03-29 17:01:59 +07:00
Sergey Lipskiy
8a1f7f1067
Revert commit 210c9ea
.
...
Fixed Majora's Mask Flickering #1434
2017-03-28 15:16:42 +07:00
Sergey Lipskiy
bce9698958
Correct FrameBuffer::init
2017-03-18 20:09:10 +07:00
Sergey Lipskiy
21d64691cf
Correct chained buffers detection in FrameBufferList::renderBuffer()
2017-03-16 18:50:15 +07:00
Sergey Lipskiy
cb1f6e78e3
FrameBufferList::saveBuffer do not create frame buffer if buffer width is too large.
2017-03-16 18:50:15 +07:00
Sergey Lipskiy
c53bca1e2e
Correct vOffset in FrameBufferList::renderBuffer().
2017-03-16 18:50:15 +07:00
Sergey Lipskiy
7b3e700eed
Fix FrameBufferList::renderBuffer() when MSAA enabled.
2017-03-16 18:50:15 +07:00
Sergey Lipskiy
0775d28065
Remove FrameBuffer::m_scaleY
2017-03-16 18:50:15 +07:00
Sergey Lipskiy
b00a593da0
Correct GraphicsDrawer::copyTexturedRect.
...
Fixed slide effect in BAR
2017-03-16 18:50:15 +07:00
Sergey Lipskiy
9acffe1adc
Correct FrameBufferList::renderBuffer()
...
Fixed screen shrink effect in Mia Hamm Soccer
2017-03-16 18:50:15 +07:00
Sergey Lipskiy
456459be68
Add FrameBuffer::m_isMainBuffer flag.
2017-03-16 18:50:14 +07:00
Sergey Lipskiy
a28ca93ada
Rewrite FrameBufferList::_findBuffer
2017-03-16 18:50:14 +07:00
Sergey Lipskiy
811dea1d77
Rewrite viewport for polygons with screen coords.
2017-03-16 18:50:14 +07:00
Sergey Lipskiy
5f4d03fe21
Rewrite FrameBufferList::renderBuffer()
2017-03-16 18:50:14 +07:00
Sergey Lipskiy
17eb8696ea
Correct FrameBuffer::updateEndAddress()
...
Solved problem with Top Gear Hyper Bike
2017-03-16 18:50:14 +07:00
Sergey Lipskiy
dd11326115
Rewrite buffer height calculation.
2017-03-16 18:50:14 +07:00
Sergey Lipskiy
e6811b4d4f
Move gDP.colorImage.height update to FrameBufferList::setBufferChanged.
2017-03-16 18:50:14 +07:00
Sergey Lipskiy
bca21ed071
Invert y coordinate to align image origin with frame origin.
2017-03-16 18:50:14 +07:00
Sergey Lipskiy
5d5bfcc147
Correct read from RDRAM in FrameBuffer::isValid
...
Fixed out of bounds read in Pokemon Stadium 2.
2017-03-11 13:07:24 +07:00
Sergey Lipskiy
0671ea1b02
Code cleanup: correct aux buffer detection in FrameBufferList::copyAux() and FrameBufferList::removeAux()
2017-02-27 21:04:40 +07:00
Sergey Lipskiy
5a0344aa02
Code cleanup: remove redundant parameter from FrameBuffer::init.
2017-02-27 21:00:27 +07:00
Sergey Lipskiy
873a830d88
Always render to FBO, even when frame buffer emulation is disabled.
2017-02-25 14:08:26 +07:00
Sergey Lipskiy
4b040304bb
Code cleanup in FrameBufferList::renderBuffer: remove redundant casts to ObjectHandle.
2017-02-25 14:08:24 +07:00
Sergey Lipskiy
827b6bb9cd
Code refactor: replace graphics::ObjectHandle() by graphics::ObjectHandle::null
2017-02-22 16:45:27 +07:00
Sergey Lipskiy
d7407d58f9
Minor code cleanup.
2017-02-12 16:10:58 +07:00
Sergey Lipskiy
b9453474b6
Fix initialization of multisample textures.
2017-02-12 16:05:02 +07:00
Logan McNaughton
1f74b9c821
Disable N64 Depth Compare if Image Textures are unsupported
...
Also disable fragment depth writing in GLES2
2017-02-09 21:54:44 +07:00
Sergey Lipskiy
7fe2b40cad
Remove rudiments of old code for RPI.
2017-02-04 22:51:54 +07:00
Sergey Lipskiy
210c9ea64a
Do not attach depth buffer to frame buffer if same depth buffer already attached.
2017-02-03 21:28:06 +07:00
Sergey Lipskiy
4756b1eb74
Correct FrameBufferList::renderBuffer
2017-01-29 22:16:01 +07:00
Sergey Lipskiy
df4a81bfea
Add special Parameter classes to make parametrs usage more safe.
2017-01-28 16:52:09 +07:00
Sergey Lipskiy
ea4d174e5c
Correct texture initialization.
2017-01-26 21:36:54 +07:00
Sergey Lipskiy
c9f98d175c
Fix some TODO issues in FrameBuffer.cpp
2017-01-25 21:01:32 +07:00