Tillmann Karras
4d1face540
Fix indentation
2015-01-07 21:51:47 +01:00
Markus Wick
d8d4c94e07
Merge pull request #1819 from Tilka/cmake
...
CMake: simplify some expressions
2015-01-06 09:27:59 +01:00
degasus
110d494070
VideoCommon: fix deterministic dual core
2015-01-03 21:50:51 +01:00
Tillmann Karras
6bcdb10eee
CMake: simplify some expressions
2015-01-03 13:17:57 +01:00
Scott Mansell
1b771deb56
Move worldpos into it's own varying.
...
Previously it was packed into spare slots in clippos.xy and normal.w,
but it's ugly and more importantly it's causing bugs.
This was discovered during the debugging of a zfreeze branch, which
expected clippos.xy to be xy position coordinates in clipspace (as
the name suggested).
Turns out the stereoscopy shader had also run into this trap, modifying
clippos.x (introducing errors with per-pixel lighting).
This commit has been moved outside of the zfreeze PR for fast merging.
2015-01-03 09:23:09 +13:00
Jules Blok
b816ee1f79
VideoConfig: Define a per-game minimum convergence value instead of a percentage boost.
2015-01-02 17:07:08 +01:00
skidau
9c6795c7b7
Merge pull request #1778 from JMC47/ReadIdleFix
...
Remove AtBreakpoint() from ReadIdle. Fixes Rogue Squadron 2 without breaking Gladius
2015-01-02 12:00:00 +11:00
Markus Wick
ec4dfae333
Merge pull request #1747 from Armada651/intel-workaround
...
OGL: Work around Intel structures bug.
2015-01-01 21:41:09 +01:00
Markus Wick
f5cddd4020
Merge pull request #1790 from Armada651/master
...
VideoConfig: Don't disable stereoscopy if Real XFB is enabled but not in use.
2014-12-30 12:30:23 +01:00
Jules Blok
0860c02258
VideoConfig: Don't disable stereoscopy if Real XFB is enabled but not in use.
2014-12-29 19:15:31 +01:00
Jules Blok
b474c4229d
VertexShaderManager: Turn off the epsilon hack for Nvidia 3D Vision.
2014-12-29 17:05:39 +01:00
Jules Blok
da058b3078
VideoConfig: Fix convergence parameter.
...
Looks like a rebase failed somewhere.
2014-12-29 12:03:59 +01:00
degasus
c6dd5044d6
VideoCommon: make hash independet from hires textures
2014-12-29 10:24:27 +01:00
degasus
f8184858da
VideoCommon: Merge code to generate texture names on dumping
2014-12-29 10:24:27 +01:00
degasus
51bfc4c52a
VideoCommon: rewrite custom textures
2014-12-29 10:24:21 +01:00
Jules Blok
3ed777b0f9
PixelShaderGen: Don't assign to input variables.
2014-12-28 23:37:05 +01:00
Jules Blok
8676891f77
VertexShaderGen: Don't read from output variables.
2014-12-28 23:28:00 +01:00
Jules Blok
3f763e6999
DriverDetails: Remove Intel Structs bug since it doesn't affect us anymore.
2014-12-28 23:28:00 +01:00
Jules Blok
7eb353b3bd
VideoCommon: Don't pass structs between shaders, use the interface blocks instead.
2014-12-28 23:28:00 +01:00
Jules Blok
2c0bee5da9
DriverDetails: Update Intel bug description.
2014-12-28 23:28:00 +01:00
Markus Wick
0f87d9b669
Merge pull request #1781 from Armada651/xfb-fixes
...
D3D: Fix Virtual XFB viewport.
2014-12-28 22:22:27 +01:00
Ryan Houdek
15f074dd21
Merge pull request #1766 from Armada651/enable-stereo
...
Enable stereoscopy settings.
2014-12-28 15:14:53 -06:00
Jules Blok
e1dc033113
Renderer: Cosmetics.
2014-12-28 18:35:23 +01:00
Justin Chadwick
51b26f3397
Remove AtBreakpoint() from ReadIdle. Fixes Rogue Squadron 2 without
...
Breaking Gladius
2014-12-27 19:16:50 -05:00
Jules Blok
86120bfc97
GeometryShaderManager: Set viewport in SetConstants().
...
Setting it in the callback is too early.
2014-12-26 17:58:59 +01:00
Jules Blok
af8ac328e5
Renderer: Use old method of calculating the source rectangle.
2014-12-25 02:37:22 +01:00
Jules Blok
46bb4fd364
FramebufferManagerBase: Remove obsolete parameters.
2014-12-25 00:58:16 +01:00
Jules Blok
31a55384b3
VideoConfig: Rename "StereoMonoEFBDepth" to "StereoEFBMonoDepth"
...
Makes a little bit more sense.
2014-12-24 23:30:40 +01:00
Jules Blok
c424aa1ac6
GeometryShaderManager: Boost convergence value.
...
Most game don't require much granularity regarding the convergence value.
The default convergence was also too low, this commit increases it tenfold.
2014-12-24 23:29:40 +01:00
Jules Blok
70b898e2c6
VideoConfig: Rename Separation to Depth and update descriptions.
...
More accurate since it's not a real IPD and Nvidia also calls it depth.
2014-12-24 23:28:23 +01:00
Jules Blok
9590ea0cf6
VideoConfig: Turn off stereoscopy when Real XFB is enabled.
2014-12-24 18:45:24 +01:00
Jules Blok
4a86234a79
D3D: Support stereoscopic XFB blit to screen.
2014-12-24 18:45:24 +01:00
Jules Blok
b109b31f61
FramebufferManagerBase: Only allocate one layer for Real XFB.
2014-12-24 17:22:23 +01:00
degasus
01cd11a835
OGL: fix ssbo based bbox support
2014-12-22 19:10:35 +01:00
degasus
1efd00227d
VertexLoader: Skip vertices with position index = -1
2014-12-21 14:29:44 +01:00
degasus
325e8e370e
VertexLoader: Merge dummy functions
2014-12-21 14:13:04 +01:00
degasus
7c486a8c24
VertexLoader: Add a VertexLoader pointer to each function call
2014-12-21 14:13:04 +01:00
degasus
7edf6ec4e4
VertexLoader: Add a test loader which compares two vertex loaders
2014-12-21 14:13:04 +01:00
degasus
809117102e
VideoCommon: split VertexLoaderBase from VertexLoader
2014-12-21 14:12:43 +01:00
degasus
a71c8158d9
VertexLoader: remove inlined getters
...
They just blow up the code.
2014-12-21 13:47:43 +01:00
degasus
6e3b2712d2
VideoCommon: Move NativeVertexFormat cache to VertexLoaderManager
2014-12-21 13:47:43 +01:00
degasus
1281798992
VertexLoaderUid: remove operator<
...
Not needed for unordered map.
2014-12-21 13:47:43 +01:00
degasus
ec28a80e00
VideoLoader: remove VAT_*_FRACBITS
...
They are used to remove the flush amounts, but as we don't
flush anymore on vertex loader changes (only on native
vertex format right now), this optimization is now unneeded.
This will allow us to hard code the frac factors within the
vertex loaders.
2014-12-21 13:47:42 +01:00
Ryan Houdek
59e1a8a1a0
Merge pull request #1736 from degasus/osd
...
OSD
2014-12-20 23:21:24 -06:00
degasus
a858db1d27
OGL: move osd warning for not supported stereo mode into config validation
2014-12-20 19:54:00 +01:00
degasus
ed9c14e0d5
OGL: Fix OGL3 with stereo enabled
2014-12-20 19:13:34 +01:00
degasus
3f9b52e555
OGL: draw shadows within rasterfont itself
2014-12-20 13:31:41 +01:00
Jules Blok
d09af2dbba
GeometryShaderManager: Set stereo parameters in a SetConstants() call.
...
Doing it in SetProjectionChanged() is too early because the projection type is not set yet.
2014-12-20 13:16:26 +01:00
degasus
fb177ca04e
VideoCommon: merge debug test generators
2014-12-20 13:06:29 +01:00
degasus
ffa014dd48
VideoCommon: merge debug info generators
2014-12-20 12:25:10 +01:00
Dolphin Bot
a560d8f150
Merge pull request #1716 from Armada651/geom-wireframe
...
VideoCommon: Handle wireframe mode in the geometry shader.
2014-12-20 12:22:40 +01:00
Jules Blok
bc3ed44050
OGL: Disable geometry shaders on Intel's Windows drivers due to broken interface blocks.
2014-12-19 23:56:02 +01:00
Ryan Houdek
b30802e2f0
Merge pull request #1721 from Sonicadvance1/fix_adreno_400
...
Fixes Adreno 400 performance.
2014-12-19 15:55:50 -06:00
Jules Blok
0d79e8f32b
VideoCommon: Don't specify the redundant in/out qualifier if GL_ARB_shading_language_420pack is supported.
...
Some driver developers interpreted "can" as "must" in the OpenGL specs. (I'm looking at you AMD)
2014-12-19 22:45:39 +01:00
Ryan Houdek
8c0e26d969
Minor changes to DriverDetails
...
Fixes a typo where the official IMGTec drivers were said to be the OSS driver support.
Removes Mali GPU family detection just like I removed the Adreno family detection.
We don't support Mali Utgard anyway.
If we need family detection we can properly add it, right now it isn't needed.
2014-12-19 21:41:12 +00:00
Ryan Houdek
0fec69001b
Fixes Adreno 400 slow performance.
...
Adreno 300 and 400 have the same video driver performance issues because they are very similar architectures which use basically the same thing with
everything.
There isn't any need to detect the family of the driver with Qualcomm anyway. If we ever need family specific bugs then we can implement real support
for that.
Performance issue on Adreno 400 series was due to us only detecting Adreno 300 series, and with Adreno 400 it wouldn't use the bugs, which would cause
it to use glBufferSubData, causing the huge performance hit.
2014-12-19 21:31:37 +00:00
Jules Blok
531b3941ff
GeometryShaderGen: Re-emit the first vertex when wireframe mode is enabled.
2014-12-19 14:24:08 +01:00
Jules Blok
1b9fe70d7c
VideoCommon: Make IsPassthrough() a function of the ShaderUid.
2014-12-19 14:10:53 +01:00
Jules Blok
925bbcb85b
VideoCommon: Handle wireframe mode in the geometry shader.
2014-12-19 14:10:52 +01:00
Jules Blok
cdd9e07522
VideoCommon: Add in/out qualifiers to centroid storage qualifier.
...
Fixes shaders for GPUs that don't support GL_ARB_shading_language_420pack.
2014-12-19 12:19:15 +01:00
Ryan Houdek
02f22152be
Merge pull request #1706 from Armada651/line-width
...
VideoCommon: Merge LineGeometryShader into GeometryShaderGen.
2014-12-18 19:43:12 -06:00
Jules Blok
e7e8a4f1cb
GeometryShaderGen: Don't use the reserved keyword "point" in D3D.
2014-12-19 02:24:41 +01:00
Markus Wick
c7b809d46b
Merge pull request #1669 from degasus/swvertexloader
...
Video Software Vertex Loader
2014-12-18 19:30:56 +01:00
Jules Blok
8dc3653ac9
VideoCommon: Don't pass structs between shader stages when geometry shaders are unsupported.
2014-12-18 00:37:16 +01:00
Jules Blok
69df23f725
VideoCommon: Only use interface blocks when geometry shaders are supported.
2014-12-18 00:37:14 +01:00
Jules Blok
1af3d8447a
GeometryShaderManager: Set the constants within the callbacks.
2014-12-18 00:37:09 +01:00
Jules Blok
7e8f96f0d3
OGL: Don't generate a geometry shader if the backend doesn't support it.
...
This commit repurposes the bSupportsStereoscopy flag as the bSupportsGeometryShaders flag.
2014-12-18 00:36:49 +01:00
Jules Blok
782a5adb94
VideoCommon: Pass interface blocks between shader stages to resolve naming conflicts.
2014-12-18 00:36:49 +01:00
Jules Blok
bd6d229733
GeometryShader: Disable the geometry shader stage if it is a pass-through shader.
2014-12-18 00:36:48 +01:00
Jules Blok
f2e52b46c3
GeometryShaderGen: Cosmetics.
2014-12-18 00:36:47 +01:00
Jules Blok
0ac7103391
GeometryShaderGen: Pack uniforms more tightly.
2014-12-18 00:36:40 +01:00
Jules Blok
d115048615
GeometryShaderGen: Remove redundant declaration.
2014-12-15 23:20:56 +01:00
Jules Blok
16af00d515
GeometryShaderGen: Use signed integers for the texture offset flags.
2014-12-15 23:05:16 +01:00
Jules Blok
861fa1af23
GeometryShaderGen: Declare a prototype for EmitVertex().
2014-12-15 22:47:43 +01:00
Jules Blok
8ae738ff30
VideoCommon: Merge PointGeometryShader into GeometryShaderGen.
...
This adds point-width emulation support to OpenGL.
2014-12-15 22:47:43 +01:00
Jules Blok
55e60a9c22
VideoCommon: Merge LineGeometryShader into GeometryShaderGen.
...
This adds line-width emulation support to OpenGL.
2014-12-15 22:47:42 +01:00
Jules Blok
275af9c5e4
VideoCommon: Assume we always use a geometry shader, not just for stereoscopy.
2014-12-15 22:47:41 +01:00
Jules Blok
382e1c22db
GeometryShaderGen: Support multiple primitive types.
...
And make more stereoscopy code optional.
2014-12-15 22:47:41 +01:00
Jules Blok
887c669c28
GeometryShaderGen: Redefine gl_InvocationID so we can use the same variable name in both backends.
2014-12-15 22:47:40 +01:00
Jules Blok
332ba4b210
GeometryShaderManager: Upload Line/Point width constants.
2014-12-15 22:47:35 +01:00
Jules Blok
aa4242fd9c
GeometryShaderGen: Pass the primitive type and always run the generator regardless of stereoscopy.
2014-12-14 21:23:20 +01:00
Jules Blok
b406e4e1f2
VideoCommon: Add a separate constants buffer for the geometry shader.
2014-12-14 21:23:13 +01:00
Jules Blok
cec5b0ce01
ShaderGen: Remove the GS_OUTPUT struct for OpenGL.
...
And remove the generator for it since it is no longer used outside of the geometry shader.
2014-12-14 13:28:50 +01:00
Jules Blok
fd6b588627
D3D: Define decimals in floating point numbers
2014-12-14 13:28:49 +01:00
Jules Blok
ea2bcb44f0
Cosmetics
2014-12-14 13:28:48 +01:00
Jules Blok
b06280e866
D3D: Add anaglyph stereoscopy support.
2014-12-14 13:28:47 +01:00
Jules Blok
b769da23d0
PixelShaderGen: Sample the correct texture slice.
2014-12-14 13:28:45 +01:00
Jules Blok
4f6ce0f236
D3D: Add geometry shader instancing support.
2014-12-14 13:28:44 +01:00
Jules Blok
a689db0e48
D3D: Add 3D vision support.
2014-12-14 13:28:42 +01:00
Jules Blok
9253bb7d96
D3D: Add geometry shader stereoscopy support.
2014-12-14 13:28:41 +01:00
Jules Blok
d5ebdf7a97
D3D: Add GeometryShaderCache.
2014-12-14 13:28:41 +01:00
degasus
d5eeb9b713
VideoSW: rewrite VertexLoader to use the VideoCommon one
2014-12-13 10:29:08 +01:00
skidau
d02eb3ca59
Merge pull request #1640 from rohit-n/switch-default
...
Silence some -Wswitch-default warnings.
2014-12-13 19:47:06 +11:00
Rohit Nirmal
b030d29067
Silence some -Wswitch-default warnings.
2014-12-11 22:23:05 -06:00
Fiora
3effd08843
FIFO: allocate slightly more for SIMD vertex loader overreads
...
May fix crashes in rare cases.
2014-12-10 05:52:55 -08:00
Markus Wick
4c139ca7cc
Merge pull request #1609 from degasus/datareader
...
VideoCommon: Datareader
2014-12-10 06:53:11 +01:00
degasus
bf65c49609
PixelShaderGen: merge OGL+D3D bbox
2014-12-09 19:32:24 +01:00
degasus
3fc7e55cc4
VideoCommon: clean up VertexLoader
2014-12-09 18:56:27 +01:00
degasus
02cdb41d3d
VideoCommon: Rename s_pCurBufferPointer
2014-12-09 18:56:27 +01:00
degasus
50de4238bb
VertexLoader: Move the old Datareader function into VertexLoader
2014-12-09 18:56:27 +01:00
degasus
21970c4a2a
VideoCommon: cleanup OpcodeDecoder
2014-12-09 18:56:27 +01:00
degasus
4b22885ed8
VideoCommon: fifo cleanups
2014-12-09 18:56:27 +01:00
degasus
27f984c02e
VideoCommon: rewrite DataReader
2014-12-09 18:56:27 +01:00
Ryan Houdek
0578ec92c0
Merge pull request #1665 from Sonicadvance1/yielding_the_dual_core_world
...
Idle loop in GPU loop on dual core systems.
2014-12-09 02:22:27 -06:00
Markus Wick
ff4526b4a9
Merge pull request #1657 from Tinob/master
...
Add HW bounding Box support to d3d backend
2014-12-08 09:05:22 +01:00
Ryan Houdek
d58bba2160
Idle loop in GPU loop on dual core systems.
...
Previously we had decided to busy loop on systems due to Windows' scheduler being terrible and moving us around CPU cores when we yielded.
Along with context switching being a hot spot.
We had decided to busy loop in these situations instead, which allows us greater CPU performance on the video thread.
This can be attributed to multiple things, CPU not downclocking while busy looping, context switches happening less often, yielding taking more time
than a busy loop, etc.
One thing we had considered when moving over to a busy loop is the issues that dual core systems would now face due to Dolphin eating all of their CPU
resources. Effectively we are starving a dual core system of any time to do anything else due to the CPU thread always being pinned at 100% and then
the GPU thread also always at 100% just spinning around. We noted the potential for a performance regression, but dismissed it as most computers are
now becoming quad core or higher.
This change in particular has performance advantages on the dual core Nvidia Denver due to its architecture being nonstandard. If both CPU cores are
maxed out, the CPU can't effectively take any idle time to recompile host code blocks to its native VLIW architecture.
It can still do so, but it does less frequently which results in performance issues in Dolphin due to most code just running through the in-order
instruction decoder instead of the native VLIW architecture.
In one particular example, yielding moves the performance from 35-40FPS to 50-55FPS. So it is far more noticeable on Denver than any other system.
Of course once a triple or quad core Denver system comes out this will no longer be an issue on this architecture since it'll have a free core to do
all of this work.
2014-12-07 05:36:44 +00:00
Lioncash
9bcadc8029
Common: Remove locale based functions from CommonFuncs.
...
Since %f isn't used anymore in the shader generators, these can go.
2014-12-05 20:55:29 -05:00
Rodolfo Bogado
93b4540e19
Add HW bounding Box support to d3d backend
2014-12-05 15:03:24 -03:00
Markus Wick
f00ad2e65c
Merge pull request #1656 from kayru/orthographic_projection_epsilon
...
Moved projection epsilon back to g_fProjectionMatrix[15]
2014-12-05 17:34:50 +01:00
Yuriy O'Donnell
7ba417b73d
Moved projection epsilon back to g_fProjectionMatrix[15], which essentially scales vertices instead of just biasing.
2014-12-05 09:41:41 +01:00
Markus Wick
02dae1d1ba
VideoCommon: fix include order
2014-12-04 15:15:16 +01:00
skidau
4a424e93a4
Merge pull request #1622 from FioraAeterna/texmtxfloat4
...
Vertex loader: optimize texmtx_write_float4
2014-12-04 13:10:22 +11:00
Rohit Nirmal
ac22a2184b
Fix building with PCH disabled.
2014-12-03 19:59:47 -06:00
skidau
bfc62d2ada
Merge pull request #1366 from kayru/orthographic_projection_epsilon
...
Added projection matrix epsilon that fixes depth clipping issues in some games
2014-12-04 09:10:36 +11:00
Lioncash
88cd27bbca
Merge pull request #1392 from kayru/d3d_viewport_depth
...
D3D: Replaced shader-based depth range remap with viewport
2014-12-03 14:49:30 -05:00
Fiora
e3578683e3
Vertex loader: optimize texmtx_write_float4
...
Seems to be pretty high in the profile in some geometry-heavy games like The
Last Story, and the compiler-generated assembly is terrifyingly bad, so
SSE-ize it.
2014-12-03 11:17:05 -08:00
Ryan Houdek
5c3bbf7409
Works around broken Intel Windows video drivers.
...
Just use regular boolean negation in our pixel shader's depth test everywhere except on Qualcomm.
This works around a bug in the Intel Windows driver where comparing a boolean value against true or false fails but boolean negation works fine.
Quite silly.
Should fix issues #7830 and #7899 .
2014-12-03 00:33:42 -06:00
Rohit Nirmal
239eaf122a
VideoCommon: Fix -Wsign-compare warnings.
2014-11-29 17:40:14 -06:00
Yuriy O'Donnell
a886d8a8ee
Renamed DEPTHPARAMS to PIXELCENTERCORRECTION
...
This shader constant was previously used for depth remapping in D3D and for pixel center correction. Now it only serves one purpose and the new name makes it clear.
2014-11-29 11:42:52 +01:00
Yuriy O'Donnell
cc2227fbc3
D3D: Replaced shader-based depth range remap with viewport
...
This fixes UI rendering in some games mentioned in https://code.google.com/p/dolphin-emu/issues/detail?id=7785
2014-11-29 11:11:28 +01:00
Fiora
7acd5eba17
Vertex loader: use ABI_CallFunction
...
Should result in faster/shorter code sequences on platforms where generated
code is close enough to the code segment (e.g. Windows).
2014-11-28 20:26:00 -08:00
Ryan Houdek
ce059769f6
Merge pull request #1439 from Armada651/ogl-stereo-3d
...
OGL: Stereoscopic 3D Support
2014-11-28 11:45:38 -06:00
Jules Blok
6d51455195
VideoConfig: Further optimize convergence and separation values and update their descriptions.
...
Previous convergence distance was much too large.
2014-11-27 16:19:26 +01:00
Lioncash
4afb85ef33
Merge pull request #1584 from degasus/master
...
OGL: also show driver warnings on release builds
2014-11-25 12:41:47 -05:00
Stevoisiak
6da394a4d0
More formatting and consistency fixes
2014-11-24 17:16:59 -05:00
Jules Blok
a04edbcb9a
VideoConfig: Add separation and convergence modifiers to the game ini.
2014-11-24 15:10:52 +01:00
Jules Blok
f64aadd362
VideoConfig: Limit the StereoMonoEFBDepth option to the game ini and introduce a separate section for it.
2014-11-24 12:25:35 +01:00
Jules Blok
0f4d59f612
VideoConfig: Rename StereoFocalLength to StereoConvergence.
2014-11-24 11:58:38 +01:00
Jules Blok
9b2cd82da5
GeometryShaderGen: Set the properties of the VS_OUTPUT struct in the uid.
2014-11-23 14:30:12 +01:00
degasus
ed9f258b27
GeometryShader: Don't read from output variables
2014-11-23 14:30:12 +01:00
Jules Blok
106df04e8e
GeometryShaderGen: Declare the vertex array size.
2014-11-23 14:30:12 +01:00
Jules Blok
422125c1a9
GeometryShaderGen: Add comments.
2014-11-23 14:30:12 +01:00
Jules Blok
24e4de3643
VideoConfig: Move stereoscopy settings to the Enhancements section.
2014-11-23 14:30:12 +01:00
Jules Blok
0f63186371
TextureCache: Add "Mono EFB Depth Copy" stereoscopy option.
2014-11-23 14:27:40 +01:00
Jules Blok
f3ddf37d07
VideoCommon: Switch to Nvidia stereoscopy offset formula.
2014-11-23 14:27:40 +01:00
Jules Blok
8210b9c915
TextureCache: Ensure that all render target textures have as many layers as the frame buffer.
...
Also fixes a case where the D3D code path did not initialize num_layers leading to undefined behaviour.
2014-11-23 14:27:40 +01:00
Jules Blok
27f3f804a0
ShaderGen: Only pass VS_OUTPUT between shaders if stereo 3D is enabled.
...
GLSL130 doesn't support passing structs between shaders.
This is not a problem for stereo 3D which has a GLSL150 requirement.
2014-11-23 14:27:40 +01:00
Jules Blok
51a4d6a4be
GeometryShader: Adjust positions after projection.
...
By adjusting the positions in clip space we can avoid the re-projection.
2014-11-23 14:27:40 +01:00
Jules Blok
ee76c03160
TextureCache: Recompile EFB2Tex shaders when stereo 3D is toggled.
2014-11-23 14:27:40 +01:00
Jules Blok
acc65ee608
GeometryShader: Replicate missing position manipulations from vertex shader.
2014-11-23 14:27:40 +01:00
Jules Blok
3baa01fc73
VideoConfig: Use a smaller focal length default.
2014-11-23 14:27:39 +01:00
Jules Blok
f74d1b16ed
OGL: Add Top-and-Bottom stereoscopy mode.
2014-11-23 14:27:39 +01:00
Jules Blok
1261bd02ca
VertexShaderManager: Add stereoscopy options to swap the left and right eye.
2014-11-23 14:27:39 +01:00
Jules Blok
c3ad6e7820
PostProcessing: Add support for anaglyph stereoscopy mode.
2014-11-23 14:27:39 +01:00
Jules Blok
6c8f3fa861
VideoConfig: Add StereoMode enumeration.
2014-11-23 14:27:39 +01:00
Jules Blok
d7804a4d3e
Cosmetics.
2014-11-23 14:27:39 +01:00
Jules Blok
9b22e15180
VideoConfigDiag: Add stereoscopy options group.
2014-11-23 14:27:38 +01:00
Jules Blok
4d9589b35f
Cosmetics.
2014-11-23 14:27:38 +01:00
Jules Blok
9b4185ffdf
ShaderGen: Make use of padding to store the stereo flag.
2014-11-23 14:27:38 +01:00
Jules Blok
f370cb386c
ProgramShaderCache: Always generate a geometry shader UID, even if stereoscopy is disabled.
2014-11-23 14:27:38 +01:00
Jules Blok
6cacfad010
GeometryShader: Transform the projection within the geometry shader.
...
Reduces the amount of data transferred through uniforms.
The shearing transformation is reduced to a single multiplication/addition for optimization.
2014-11-23 14:27:38 +01:00
Jules Blok
4fd943aedd
VideoConfig: Limit the Stereo 3D option to the OpenGL backend.
2014-11-23 14:27:38 +01:00
Jules Blok
63b37e29d1
ShaderGen: Rename "eye" to "layer".
...
Keeping things generic.
2014-11-23 14:26:56 +01:00
Jules Blok
d583720a59
GeometryShaderGen: Support stereoscopy on GPUs without support for instancing.
2014-11-23 14:26:56 +01:00
Jules Blok
176191dc16
ShaderGenCommon: Move uniforms into a common static string.
2014-11-23 14:24:09 +01:00
Jules Blok
fa32f751d3
ShaderGen: Handle ShaderCode objects directly.
...
ShaderGeneratorInterface does not have virtual function members, so we have to implement each type explicitly.
2014-11-23 14:24:09 +01:00
Jules Blok
b236c363de
ShaderGen: Add a stereoscopy flag in the UID data.
2014-11-23 14:23:42 +01:00
Jules Blok
5944d15021
TextureCache: Check the number of layers before reusing a texture.
2014-11-23 14:23:42 +01:00
Jules Blok
272ea90ca5
GeometryShaderGen: Allow stereoscopy to be disabled.
...
Will facilitate future use of this generator for other purposes.
2014-11-23 14:23:41 +01:00
Jules Blok
d9e280e338
PixelShaderGen: Sample the correct texture layer.
2014-11-23 14:23:41 +01:00
Jules Blok
f6ea293027
VertexShaderManager: Compute stereoscopy projection matrices.
2014-11-23 14:23:41 +01:00
Jules Blok
c64486075d
PostProcessing: Add layered stereoscopy support.
2014-11-23 14:23:41 +01:00
Jules Blok
2d8ec62beb
Pass VS_OUTPUT structs between shaders.
2014-11-23 14:23:41 +01:00
Jules Blok
b005f61a2e
Add geometry shader generator for stereo 3D.
2014-11-23 14:22:55 +01:00
degasus
6670cacddc
use GL_TEXTURE_2D_ARRAY for most of our textures
2014-11-23 14:22:22 +01:00
degasus
6f3e20ac42
OGL: disable bbox writes if not supported
2014-11-22 15:17:57 +01:00
Matthew Parlane
4ef0ab2731
Merge pull request #1534 from FioraAeterna/fixd3dtex1x1
...
D3D: fix issues with multi-level 1x1 textures on D3D
2014-11-21 19:12:58 +13:00
Matthew Parlane
21e4e035cc
Merge pull request #1281 from Stevoisiak/RenameEuRGB60
...
Renamed EuRGB to PAL60
2014-11-21 19:09:42 +13:00
Fiora
3ddf82a318
Vertex Loader: SSE implementations of more position/texcoord/normal formats
...
~35-45% faster NFS:HP2, possibly other vertex-bound games.
2014-11-20 02:13:19 -08:00
comex
fb50cb6d99
Merge pull request #1550 from degasus/bbox
...
OGL: implement bounding box support with ssbo
2014-11-19 20:25:23 -05:00
skidau
ca3e5ce5e1
Added an exception check when the game is close to overflowing. Fixes the fifo overflow that occurs in Battalion Wars 2.
...
Changed the CPEnd loop check to an exact match.
2014-11-19 12:48:09 +11:00
skidau
3d448e49c6
Update CPStatus before processing the FIFO events and force an exception check on interrupts.
...
Added more information into the FIFO unknown opcode error message.
2014-11-19 12:48:08 +11:00
skidau
b2c02e216c
Separated out the CPU and GPU thread path to avoid clobbering.
...
Removed the Eternal Darkness check as it is no longer required.
Fixes issue 7835.
2014-11-19 12:48:08 +11:00
Stevoisiak
e7a82c4ded
Renamed EuRGB60 to PAL60
2014-11-18 16:51:21 -05:00
degasus
c211450b99
OGL: implement bounding box support with ssbo
...
This implemention tries to be as accurate as the old SW implemention, but it will remove the dependcy of our vertexloader on videosw.
2014-11-17 21:20:32 +01:00
degasus
90613a1bda
OpcodeDecoder: Skip recursiv display lists
2014-11-15 16:24:06 +01:00
Stevoisiak
b25e1a2eb4
Various formatting and consistency fixes
2014-11-13 22:42:18 -05:00
Fiora
733795891c
D3D: fix issues with multi-level 1x1 textures on D3D
...
Fixes NBA 2K11, maybe other things.
2014-11-12 21:43:48 -08:00
Yuriy O'Donnell
dc08de028c
Moved projection epsilon to a more reasonable place
2014-11-09 15:25:49 +01:00
Jasper St. Pierre
44b879dac2
Destroy OpenMP
2014-11-06 18:38:24 -08:00
Lioncash
f6b4b4dbba
Merge pull request #1497 from lioncash/host
...
Host: Kill off Host_SysMessage
2014-11-06 20:41:53 -05:00
Lioncash
884ec2ed13
Host: Kill off Host_SysMessage
...
Equivalent facilities already exist.
2014-11-05 02:30:48 -05:00
Tillmann Karras
c34d99e40e
Work around LLVM header peculiarity
...
Bug report: http://llvm.org/bugs/show_bug.cgi?id=21472
2014-11-04 02:29:33 +01:00
comex
08b61fdd9c
Merge pull request #1465 from degasus/master
...
VideoCommon: Remove GetPointer in fifo code
2014-11-02 19:58:45 -05:00
Ryan Houdek
6e43562496
Merge pull request #1468 from Tilka/cleanup
...
Small cleanup
2014-11-02 11:02:35 -06:00
Tillmann Karras
ff41dd479b
Fix warnings about non-static variables
2014-11-02 04:51:44 +01:00
Lioncash
9ab924513e
VideoCommon/VideoBackends: Remove unnecessary wxWidgets references.
...
EmuWindow doesn't even exist anymore. wxWidgets is also decoupled from the backends.
2014-11-01 19:19:00 -04:00
degasus
cd9f0c34e4
VideoCommon: Remove GetPointer in fifo code
2014-11-01 12:24:43 +01:00
Ryan Houdek
3e82cb4628
Merge pull request #1440 from Sonicadvance1/attributeless-workaround
...
Implements PP shader system using attribute workaround.
2014-10-30 12:46:40 -06:00
Ryan Houdek
9da7e6ae79
Adds a DriverDetails bug to track Qualcomm attributeless rendering.
...
This particular issue was fixed in the v66 (07-08-2014) development drivers from Qualcomm.
To make sure we cover all drivers that may or may not have the issue fixed, make sure to mandate v95 minimum to work around the issue.
The next commit is the actual work around for post processing for this.
2014-10-29 19:58:18 -05:00
Ryan Houdek
daabcfd6fc
Removes Qualcomm's rotated framebuffer bug from DriverDetails.
...
Due to changes in how we render to the final framebuffer we no longer encounter this bug.
With the change to post processing being enabled at all times and no longer using glBlitFramebuffer, Qualcomm no longer has the chance to rotate our
framebuffer underneath of us.
2014-10-29 19:57:51 -05:00
comex
67452c53f1
Merge pull request #1386 from booto/small-loop-fix
...
VideoCommon: loop bug in ShaderGenCommon.h debug
2014-10-29 17:28:10 -04:00
Ryan Houdek
bbaf8f9c0e
Merge pull request #1434 from Sonicadvance1/fix-qualcomm
...
Fixes missing objects on Adreno hardware.
2014-10-29 10:38:23 -06:00
Ryan Houdek
6d4867e36a
Fixes missing objects on Adreno hardware.
...
This particular bug from our friends over at Qualcomm manifests itself due to our alpha testing code having a conditional if statement in it.
This is a fairly recent breakage this time around, it was introduced in the v95 driver which comes with Android 5.0 on the Nexus 5.
So to break this issue down; In our alpha testing code we have two comparisons that happen and if they are true we will continue rendering, but if
they aren't true we do an early discard and return. This is summed up with a fairly simple if statement.
if (!(condition_1 <logic op> condition_2)) { /* discard and return */ }
This particular issue isn't actually due to the conditions within the if statement, but the negation of the result. This is the particular issue that
causes Qualcomm to fall flat on its face while doing so.
I've got two simple test cases that demonstrate this.
Non-working: http://hastebin.com/evugohixov.avrasm
Working: http://hastebin.com/afimesuwen.avrasm
As one can see, the disassembled output between the two shaders is different even though in reality it should have the same visual result.
I'm currently writing up a simple test program for Qualcomm to enjoy, since they will be asking for one when I tell them about the bug.
It will be tracked in our video driver failure spreadsheet along with the others.
2014-10-29 06:21:03 -05:00
comex
089e32ba7d
Merge pull request #1307 from comex/bitset
...
Higher level bitset wrapper
2014-10-28 23:39:35 -04:00
Scott Mansell
ba58cc47a3
Remove old (and now incorrect) error checking code.
...
We will now rely on Memory::CopyFromEmu to do bounds checking.
Some games actually load palettes from 0x00000000, despite the
fact no valid palette data should ever be there.
Fixes Issue 7792.
2014-10-29 08:53:53 +13:00
skidau
b13ba0680c
Merge pull request #1345 from sgadrat/fix-avidump-framerate
...
Fix timing of AVI files dumped on Linux
2014-10-28 12:50:01 +11:00
comex
b29e5146ec
Convert some VideoCommon stuff to BitSet.
...
Now with a minor performance improvement removed for no reason.
2014-10-25 16:57:25 -04:00
comex
eb7f4dac50
Convert registersInUse to BitSet.
2014-10-25 16:57:25 -04:00
comex
5c2a470b97
Fix 'sizeof' which broke in my reference-to-pointer conversion.
2014-10-25 15:02:12 -04:00