3100 Commits

Author SHA1 Message Date
Lioncash
e61eb34ae6 VertexManagerBase: Get rid of a u16 cast
Just using the direct value is more straightforward
2016-10-01 01:05:43 -04:00
Stenzek
bac8c2d441 Vulkan: Work around indexed fragment output bug on AMD drivers 2016-10-01 02:40:02 +10:00
Stenzek
77a128ab87 Implement experimental Vulkan backend 2016-10-01 02:40:01 +10:00
Stenzek
828aac7890 VideoBackends: Make TextureCache::CompileShaders return a bool 2016-10-01 01:09:12 +10:00
Stenzek
6a99cbd9fc VideoCommon: Call Renderer::SurfaceChanged on render parent resize
This is needed because for some reason the WSI for NV Vulkan drivers
doesn't return VK_ERROR_OUT_OF_DATE_KHR, so there is no other way to know
that a resize has occured apart from polling, which is a poor solution for
X11 (since it is blocking).
2016-10-01 01:09:12 +10:00
Stenzek
5346078791 VideoCommon: Add config fields for multithreading and validation layers 2016-10-01 01:09:12 +10:00
Stenzek
09638e714e VideoCommon: Extend DriverDetails to support both OpenGL and Vulkan 2016-10-01 01:09:12 +10:00
Stenzek
a71381e80a VideoCommon: Add APIType entry for Vulkan 2016-10-01 01:09:11 +10:00
Stenzek
75e4e42e56 ShaderGen: Work around issue with glslang and dynamic vector subscripts
Seems that vec[eye] will select vec.x no matter what the value of eye is.
2016-10-01 01:09:11 +10:00
Stenzek
7f3a876aae ShaderGen: posmtx should be a 4-component unsigned byte
This is a global change across backends, so should be tested for
regressions.
2016-10-01 01:09:11 +10:00
Stenzek
d9c034e8cc ShaderGen: Specify attribute/output locations/bindings explicitly
This also shifts the SSBO index from index 3 to index 0.
2016-10-01 01:09:11 +10:00
Markus Wick
3696c2b022 Merge pull request #4210 from degasus/arm
JitArm64: Small cleanup + speedups.
2016-09-27 18:45:14 +02:00
Markus Wick
9525a9e048 Merge pull request #3490 from degasus/singlecore
Fifo: Use SyncGPU timings for single core.
2016-09-27 10:33:47 +02:00
degasus
732e0ff03a VertexLoaderArm64: Mark register allocation as static const. 2016-09-26 22:19:07 +02:00
degasus
258f48572d VertexLoaderJit: Fix out-of-bounds access for zfreeze.
This fixes a GCC6.1 warning.
2016-09-17 16:47:12 +02:00
degasus
735da0ed69 Fifo: Use SyncGPU timings for single core. 2016-09-17 16:25:13 +02:00
Jules Blok
da43f9a156 PixelShaderGen: Always divide the texture coordinates by q.
Some games will set q to a different value than 1.0 through
texture matrix manipulations. It seems the console will still
do the division in that case.
2016-09-07 21:13:16 +02:00
Chris Burgener
69eed56256 Fix recursive code 2016-09-06 22:45:50 -04:00
Scott Mansell
0119f1302f Merge pull request #4177 from phire/useless_cases
BPStructs: remove case statements which never match.
2016-09-06 00:56:09 +12:00
Scott Mansell
a665743b70 BPStructs: remove case statments which never match.
Visual Studio's code analyzer complains about these.
2016-09-06 00:40:49 +12:00
EmptyChaos
aa16282516 Core: Change CoreTiming event key from int to EventType*
Replace 'int' keys with something that carries type information.
Performance is neutral.
2016-09-03 14:55:44 +10:00
Jules Blok
d072d6d336 Merge pull request #4170 from Armada651/float-abs
VertexShaderManager: Explicitly use floating-point variant of abs.
2016-09-01 19:03:03 +02:00
Jules Blok
9fb6f93ca1 PixelEngine: Add missing static specifier for s_token_finish_mutex. 2016-09-01 17:28:48 +02:00
Jules Blok
376cadb862 VertexShaderManager: Explicitly use floating-point variant of abs.
Some compilers don't have an automatic abs() overload for floats.
Doesn't really matter if they use the integer variant here, but
it's better to be explicit about the fact that we're using floats.
2016-09-01 17:23:07 +02:00
Jules Blok
50984d85b0 Merge pull request #4164 from Armada651/sonic-clipping
VertexShaderGen: Move the sonic epsilon hack to the vertex shader.
2016-09-01 15:28:09 +02:00
EmptyChaos
e0d4dc6fed VertexShaderGen: Fix D3D X3014 compile error
float2 requires 2 parameters in HLSL apparently.
2016-09-01 14:43:19 +10:00
Jules Blok
debaf63fe8 VertexShaderGen: Move the sonic epsilon hack to the vertex shader.
In the vertex shader we have control over the depth clipping planes,
so we don't have to offset every floating point value and lose accuracy.
2016-09-01 01:14:14 +02:00
Preston Smith
94cbe0c12a Comments 2016-08-31 06:40:50 -05:00
Preston Smith
5a6b876dbd Hardware renderer fix 2016-08-30 18:33:23 -05:00
Jules Blok
92920c4005 TextureCacheBase: Address 0x0 is valid, don't you dare ignore it. 2016-08-30 16:45:49 +02:00
Chris Burgener
df0f7657d0 Fix frame dump issues where frame dumping stops before next drawn frame 2016-08-24 13:00:25 -04:00
Jules Blok
35a270d2a8 TextureConversionShader: Don't use the float specifier in shader code. 2016-08-24 17:42:32 +02:00
Jules Blok
f7987017a0 PixelShaderManager: Use signed integers for the depth range parameters. 2016-08-23 15:54:05 +02:00
Jules Blok
a8a9348913 OGL: Handle cases where reversed depth is already used. 2016-08-23 15:54:04 +02:00
Markus Wick
52af0770c3 Merge pull request #4141 from lioncash/vtx
VertexManagerBase: Get rid of static state
2016-08-23 07:33:25 +02:00
Lioncash
2bf05a544d VertexManager: Correct variable naming scheme
Altered to indicate regular class members
2016-08-22 20:01:00 -04:00
Markus Wick
10d20d47aa Merge pull request #4132 from lioncash/enum-fifo
Fifo: Make SyncGPUReason an enum class
2016-08-22 16:49:40 +02:00
Lioncash
1392efa91d VertexManagerBase: Get rid of static behavior 2016-08-21 23:30:38 -04:00
JosJuice
31c530c7b3 Merge pull request #3386 from lioncash/memory
Common: Namespace MemoryUtil
2016-08-19 11:04:45 +02:00
Lioncash
5635d4b709 Fifo: Make SyncGPUReason an enum class 2016-08-18 22:35:58 -04:00
Jules Blok
e86d7cbc99 OGL: Workaround gl_ClipDistance bug on Mesa i965. 2016-08-18 01:08:39 +02:00
Jules Blok
7078216b61 Improve documentation. 2016-08-16 21:09:58 +02:00
Jules Blok
8c1c7fc2da Cosmetics. 2016-08-15 13:11:30 +02:00
Jules Blok
959d1879e5 VertexShaderGen: Fix far clipping.
We should only check whether z > 0, we don't care about w.
2016-08-15 13:11:29 +02:00
Jules Blok
afa251af42 DriverDetails: Add bug for broken gl_ClipDistance on i965. 2016-08-15 13:11:28 +02:00
Jules Blok
94927f360f VideoCommon: Add a user-defined far clipping plane. 2016-08-15 13:11:28 +02:00
Jules Blok
9596ec8971 GeometryShaderGen: Pass-through clipping distance. 2016-08-15 13:11:27 +02:00
Jules Blok
a141e91dd2 OGL: Check for GL_DEPTH_CLAMP support.
It's not available in OpenGL ES and officially it's not supported on OpenGL 3.0/3.1.

Fallback to old depth range code if there is no method to disable depth clipping.
It's more important to have correct clipping than to have accurate depth values.
Inaccurate depth values can be fixed by slow depth.
2016-08-15 13:11:26 +02:00
Jules Blok
4582853af4 VertexShaderGen: Use reversed depth range. 2016-08-15 13:11:26 +02:00
Jules Blok
e9e81ece65 VideoBackends: Enable depth clamping. 2016-08-15 13:11:25 +02:00