Commit Graph

3067 Commits

Author SHA1 Message Date
degasus f45ddddf1c VideoCommon: Add shared framedumping code. 2016-10-07 23:07:40 +02:00
Stenzek b6d09c61ed TextureCache: Don't re-use pooled textures within the same frame
This is an issue because a driver may have to maintain two copies of a
texture if it batches all uploads together at the start of a frame.

In the Vulkan backend, we do something similar to avoid breaking out of a
render pass to copy a texture from the streaming buffer to the destination
image.

This was causing issues in the sms-bubbles fifolog, where an EFB copy to
the same address of a previously-used texture caused the previous texture
to be re-used again for a different image later on in the frame, causing
the original contents to be discarded.
2016-10-06 20:23:37 +10:00
Markus Wick ef1bfc26b2 Merge pull request #4291 from degasus/shader_gen
PixelShaderGen: Fix UID issues.
2016-10-05 12:20:58 +02:00
shuffle2 50fef592d7 Merge pull request #4296 from RisingFog/fix_frame_dump
Fix frame dumps on file close in certain situations
2016-10-04 17:25:40 -07:00
Chris Burgener 43c48a6f48 Fix frame dumps on file close in certain situations 2016-10-04 09:26:23 -04:00
Shawn Hoffman 55af20a439 Remove '\n' from OSD messages; they would be converted to '?' 2016-10-04 03:52:13 -07:00
degasus 6d2827ff6b PixelShader: Drop redundant warning.
This warning was raised both on UID generation and on shader generation.
2016-10-04 10:13:46 +02:00
degasus 083be0832f LightingShader: Drop xfmem usage.
Our shaders must only depend on the UID, not on any global state.
2016-10-04 10:13:46 +02:00
degasus 829fc8f0ad PixelShaderGen: Drop dstAlphaMode constant in shader generation.
It is already stored within the UID.
2016-10-04 10:13:46 +02:00
Shawn Hoffman c11aba296c Follow-up for OSD cleanup:
people probably want to see decimal instead of hex...
2016-10-03 20:42:04 -07:00
Shawn Hoffman fa5fa8e094 Clean OSD messages code
Some OSD messages were displayed in RenderBase.cpp using global variables and some code duplicated
in OnScreeDisplay.cpp.
Now all messages are displayed using functions in the OSD namepace.

* OSDChoice and OSDTime global variables are gone
* All OSD logic is kept at the same place
* All messages are properly aligned
* Clean characters for all OSD messages

Original commit:

commit f0ec61c057
Author: Aestek <thib.gilles@gmail.com>
Date:   Sun Aug 7 16:08:41 2016 +0200
2016-10-03 19:37:18 -07:00
Chris Burgener 55478af832 Fix frame dump crash when resolution changes 2016-10-03 19:50:35 -04:00
Shawn Hoffman 86112c7258 VideoCommon: Minor changes
Make Renderer::GetMaxTextureSize return u32 instead of int.
2016-10-03 06:51:46 -07:00
shuffle2 0e3f91d88b Merge pull request #4148 from RisingFog/frame_dump_fixes
Fix frame dump issues where frame dumping stops before next drawn frame
2016-10-02 21:10:35 -07:00
Mat M ccfc081697 Merge pull request #4245 from aldelaro5/logs-levels-changes
Lots of Logs levels changes (also enable INFO level in every build)
2016-10-02 16:51:44 -04:00
aldelaro5 f0aa9b3751 Reorganise a ton of logs level
Most of this commits changes performance decreasing logs from info to debug and also cleans up innacurate levels.
2016-10-01 15:50:28 -04:00
Lioncash 361c7c9c09 VertexManagerBase: Make class constants constexpr 2016-10-01 03:37:17 -04:00
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