Commit Graph

2145 Commits

Author SHA1 Message Date
d20ba76ab3 StreamBuffer: Make factory function return a std::unique_ptr 2015-12-21 10:21:38 -05:00
ec71452706 StreamBuffer: Correct function casing 2015-12-21 10:09:03 -05:00
1eea95a5be StreamBuffer: Use std::array for fences 2015-12-21 10:07:56 -05:00
7b69fec8e7 StreamBuffer: Remove unnecessary inline specifiers
Methods defined directly in class bodies are inline by default
2015-12-21 10:04:14 -05:00
f295182833 VideoBackends: Simplify initialization and deinitialization of resources
Approximately three or four times now, the issue of pointers being
in an inconsistent state been an issue in the video backend renderers
with regards to tripping up other developers.

Global (ugh) resources are put into a unique_ptr and will always have a
well-defined state of being - null or not null
2015-12-20 22:40:37 -05:00
50b9ab4541 Set g_vertex_manager to nullptr on DX11 backend shutdown.. OGL backend already does this 2015-12-20 17:02:36 -08:00
a61fc372bb VideoCommon: Change PokeEFB to take a pointer rather than a vector
This saves allocating a vector for the pass-through path.
2015-12-20 14:42:14 +10:00
7b628c99ec D3D: Implement vectored efb pokes, increase util vertex buffer size to 64KiB 2015-12-20 00:31:58 +10:00
5e9ab28ed1 VideoSW: Clear normal vertex data.
This data might not be initialized but used for lighting.
This matches our ShaderGen usage in VertexShaderGen.cpp:166.
2015-12-19 10:51:42 +01:00
de21da5fb2 Merge pull request #3315 from degasus/test
ShaderGen: Toggle value of uninitialized color.
2015-12-18 14:21:37 +01:00
ebe3c49c5f Merge pull request #3332 from degasus/master
MSAA: Store samples in ini files.
2015-12-19 01:37:10 +13:00
e15b6e1a37 Merge pull request #3162 from lioncash/rast
Software: Minor changes to Rasterizer
2015-12-15 18:22:42 +01:00
e26d9f7c35 MSAA: Store samples in ini files. 2015-12-15 09:41:01 +01:00
78dda1cf79 [OGL] Update extension checks in Render.
This was relying on behaviour that GLExtensions was adding fake extensions to the supported list with ES.
This no longer happens so it needed to be changed.
2015-12-13 11:39:45 -06:00
5dcd3cd4fd D3D: Fix crash when taking screenshot with crop enabled
This was due to specifying negative source coordinates for the texture copy, which must lie within the bounds of the source and destination textures.

The behavior now is to clamp the copy region to [0 <= size <= backbuffer size], resulting in a copy region that can be smaller than the backbuffer, but never larger.
2015-12-09 02:38:24 +10:00
63264ac23f D3D: Fix EFB depth buffer copies, filtering on scaled EFB copies when MSAA is enabled, real XFB filtering
Since ResolveSubresource cannot be used with depth textures (and throws an error with the debug layer enabled), use a shader which selects the minimum depth value from all samples.

Changes the sampler by XFBEncoder to use a linear filter, rather than point, to match GL behavior.
2015-12-08 20:29:21 +10:00
f511e539c2 VideoSW: Use Zero for undefined colors. 2015-12-06 12:39:18 +01:00
7762d68c4b Rasterizer: Mark some references as const 2015-12-06 02:51:36 -05:00
0608ed5130 Rasterizer: Specify internal linkage on Draw
It's not exposed in the header.
2015-12-06 02:51:34 -05:00
a0924b5e1b Rasterizer: Convert BLOCK_SIZE into a constant variable 2015-12-06 02:51:33 -05:00
2793785e0c Rasterizer: Get rid of a clamp macro 2015-12-06 02:51:28 -05:00
9b921c2e7c Rasterizer: Get rid of a trivial pointer cast 2015-12-06 02:44:06 -05:00
d28c9ae354 VideoSW: Wipe output vertices
They shall be overwritten afterwards.
2015-12-02 21:37:12 +01:00
21b708106c Make sure not to use a GL texture buffer past the max size.
The spec says that vendors can set the max texture size to be 65KB and we want 1MB.
Check the maximum supported and drop to the max if it is less than 1MB
2015-11-30 01:18:03 -06:00
5e803c3db3 D3D: Fix EFB->XFB copies incorrectly scaling, match GL behavior 2015-11-28 20:04:36 +10:00
fc00598785 NativeVertexFormat: Inline Initialize in contructor
They were only called at once, so no need to seperate them.

This also removes the only dereference of the NativeVertexFormat in VideoCommon, so backends may just return nullptr.
2015-11-24 22:48:49 +01:00
df799dd124 VideoCommon: Create default implementation for state setters
It's fine to pull those within the backends, so there is no need to enforce them to implement this interface.
2015-11-24 22:39:10 +01:00
d1b132731d D3D: Remove redundant cast, move pitch calculation to caller 2015-11-24 21:54:19 +10:00
6be4608a0d D3D: Fix crash on some drivers with small textures 2015-11-24 21:15:19 +10:00
d27dcdba48 We shouldn't be trying to enable the SSBO extension in ES. 2015-11-23 14:47:43 -06:00
ed5e3c054e Enable Anisotropic filtering in ES.
This adds a check to make sure the vendor supports anisotropic filtering.
Pretty much all vendors support this, even the mobile ones.
2015-11-19 02:00:43 -06:00
f172cda50f Merge pull request #3191 from lioncash/rekt
MathUtil: Minor changes to Rectangle
2015-11-18 10:40:54 +01:00
087ba5268a TextureCache: Rewrite EFB Copy control flow 2015-11-15 12:02:41 +01:00
dcdf8fd3ce TextureCache: Split efb2ram from efb2tex 2015-11-15 11:59:52 +01:00
d7d8704353 D3D-TextureEncoder: Remove TCache::Entry usage 2015-11-15 11:59:52 +01:00
71b22702a1 OGL-TextureConverter: Keep care about the global state ifself 2015-11-15 11:59:52 +01:00
495902787c OGL: Remove TCache::Entry usage in TextureConverter 2015-11-15 11:59:52 +01:00
81d9cce70c VideoCommon: rename TextureCache to TextureCacheBase 2015-11-06 15:43:58 +01:00
51c984dde3 Remove the "Show EFB Copy Regions" debug option.
It was only implemented in OpenGL, though the option was visible in both
backends, leading to memory leaks if you enabled it in DirectX.

And it wasn't particularly useful as a debug feature as it only showed
where in the EFB the copies were taken from, not what format it was, or
what the copy was used for, or what content was in the EFB at that point
in time.

Also, it stretched the copy regions relative to the window, so the
on-screen regions don't even line up with the window unless the game used
the full EFB (some pal games) and you game image stretched to the full
window.
2015-11-05 18:15:46 +13:00
05b06b7a21 Merge pull request #3227 from Tilka/sizeof
OGL: don't hardcode buffer sizes
2015-11-04 14:35:23 +13:00
39313152ba OGL: use StringFromFormat where appropriate 2015-11-04 01:56:02 +01:00
e161e714c7 Merge pull request #3226 from Tilka/shadergen
VideoCommon: return code/uid from shader gens
2015-11-04 13:42:49 +13:00
bc38892db7 DriverDetails: remove BUG_BROKENINFOLOG leftovers
It was removed in 9618738278.
2015-11-03 18:50:44 +01:00
71d1eb3c31 VideoCommon: return code/uid from shader gens
rather than passing in non-const references
2015-11-03 14:40:23 +01:00
c52c73f762 VideoCommon: VertexManager -> VertexManagerBase
It may be a bit weird to see calls to static functions in
VertexManagerBase now, but at least it's easier to see what's going on.
2015-11-02 11:53:54 +01:00
983978ee66 VideoCommon: flush vertex manager if components change 2015-11-01 22:39:31 +01:00
7066689131 ShaderCaches: remove unneeded typedefs 2015-10-29 14:43:05 +01:00
f9512ece77 OGL/ProgramShaderCache: small cleanup
Drop an unused function and privatize the cash, er, I mean cache.
2015-10-29 13:51:25 +01:00
c28e3affc5 TextureCacheBase: Change CacheLinesPerRow to BytesPerRow 2015-10-22 08:14:43 -04:00
10c1fd7f38 MathUtil: Make Rectangle constructors and equality operator constexpr 2015-10-20 20:30:36 -04:00