Commit Graph
100 Commits
Author SHA1 Message Date
degasus 7292ea6a04 OGL: force enable postprocessing 2014-10-23 00:21:52 +02:00
degasus 8f403696ea DriverDetails: mark intel buffer_storage bug as fixed 2014-10-16 22:51:32 +02:00
Markus Wick 1227bd2ba6 PixelShaderGen: replace multiplication with shift
iirc both nvidia and i965 doesn't optimize this
2014-10-14 12:34:37 +02:00
degasus 8b84ddce9a VideoCommon: rewrite frame skipping code 2014-09-04 18:07:39 +02:00
degasus ef6f6a7fa9 VideoCommon: remove XFReg copy optimization
This code is just ugly and I doubt there is a way that copying twice is faster.
2014-09-04 17:56:17 +02:00
degasus 8b0ad5daec glx: fix shutdown hang 2014-08-27 18:16:56 +02:00
degasus a64b0bf499 VertexLoader: cache NativeVertexFormat
This fix a performance regression of PR #672.
2014-08-16 12:58:52 +02:00
degasus 5205d7baa6 ogl: fix rasterfont 2014-07-31 19:03:18 +02:00
degasus 01fd96ab31 PixelShaderGen: fix indentation 2014-07-16 17:24:43 +02:00
degasus 7e79806efc remove unused globals
Also change globals into statics which are only used in one file
2014-07-11 16:10:20 +02:00
degasus 81ed17be53 avoid the extern keyword in .cpp files 2014-07-11 16:10:20 +02:00
degasus 6d3f249dcc mark all local variables as static 2014-07-11 16:10:20 +02:00
degasus 9560ecdbec CMake: warn on missing variable declarations 2014-07-11 16:07:23 +02:00
degasus 22e1aa5bb4 mark all local functions as static 2014-07-11 16:07:23 +02:00
degasus 3ff1c538ee CMake: warn on missing declarations 2014-07-11 16:07:22 +02:00
degasus e72b01caa1 ConfigManager: fix alignment 2014-07-06 11:05:16 +02:00
degasus bb2fc8ecbb VideoCommon: Cache native vertex formats
We are used to have a 1:1 mapping of GX vertex formats and the native (OGL + D3D) ones, but there are by far more GX ones.
This new cache maps them directly so that we don't flush on GX vertex format changes as long as the native one doesn't change.

The idea is stolen from galop1n.
2014-07-04 14:39:27 +02:00
degasus 02ac5e95c8 VideoCommon: normalize lighting direction.
It seems that the lighting direction must be normalized. This fixes lots of lighting issues mostly shown in the d3d backend.
2014-07-03 21:08:19 +02:00
degasus 7db5a4b22d Statistics: Reformat stats string 2014-06-27 09:36:50 +02:00
degasus f1ddd3c66a VideoCommon: remove unused stats 2014-06-27 09:35:26 +02:00
degasus 924ad1ee9f LightingShader: hard code const variable 2014-06-19 16:46:53 +02:00
degasus e456a5e64f PixelShader: remove the duplicated ppl constants 2014-06-19 16:33:33 +02:00
degasus d93f2973f7 PixelShader: use the vertex const buffer for ppl 2014-06-19 16:33:33 +02:00
degasus 027baad73b VideoCommon: use the Light struct in XF memory 2014-06-19 16:33:29 +02:00
degasus 9566dcf0da OGL: speed up the EFB cache
gcc doesn't optimize this loops with -O2, so using memset now.
A flag to skip the clear funktion was added as the cache is already cleared most of the time.
2014-06-05 14:53:09 +02:00
degasus d9eafd94a2 OGL-StreamBuffer: replace size_t with u32
Yes, this matters.
We align our buffer all the the time which needs a division. u64 divisions are just so slow.
2014-06-05 13:33:50 +02:00
degasus 606e46ba8d OGL-StreamBuffer: move alignment to caller
Only the caller know if alignment is needed at all, so it can be skipped now.
2014-06-05 13:32:13 +02:00
degasus 02a4e3d70f OGL-StreamBuffer: make the SLOT calculation much easier
The size of the buffer is now power of 2, so we can use a shift instead of a division.
This was at about 2% of the global CPU usage.
2014-06-05 13:32:13 +02:00
degasus d81d2e8915 OGL-StreamBuffer: allocate fences in StreamBuffer directly 2014-06-05 13:32:13 +02:00
degasus 0688cfdaef OGL-StreamBuffer: don't use coherent mapping
Coherent mapping seems to be much slower on fermi gpus.
2014-06-05 12:18:44 +02:00
degasus 541bfd071e Jit64: Don't flush the regcache on bcx 2014-06-02 18:12:54 +02:00
degasus 0cd9eea99e RegCache: make state clear optional on flushes 2014-06-02 18:12:53 +02:00
degasus 38c3812a60 RegCache: merge fpr+gpr BindToRegister 2014-06-02 18:12:53 +02:00
degasus 9e9b71fa87 RegCache: merge fpr+gpr StoreFromRegister 2014-06-02 18:12:53 +02:00
degasus fd9bfddde7 RegCache64: devirtualize RegCache::Start 2014-06-02 18:12:53 +02:00
degasus 8693e0abaa RegCache64: Use std::array 2014-06-02 18:11:26 +02:00
degasus 6089812482 RegCache64: move x?locks into register structs 2014-06-02 13:02:52 +02:00
degasus c800918fd8 RegCache64: remove unused functions 2014-06-02 09:53:44 +02:00
degasus 4545fa589d Jit64: remove unused FlushMode enum 2014-06-02 08:24:25 +02:00
degasus c1b6fcc00b ogl: pixel format shader without resolving
v2: Don't use std::to_string as this function is broken on android.
2014-05-19 09:29:40 +02:00
degasus e150d307a6 ogl: use ARB_texture_multisample for msaa 2014-05-19 09:21:44 +02:00
degasus fab78c2dff ogl: add ARB_texture_multisample 2014-05-19 09:21:44 +02:00
degasus 775858b6bc ogl: drop NV_framebuffer_multisample_coverage 2014-05-19 09:21:44 +02:00
degasus afea848e3b ogl: drop csaa support 2014-05-19 09:21:44 +02:00
degasus 7bb44199fd remove unused and unexported function 2014-05-16 14:33:00 +02:00
degasus 813e30ec2a ShaderGen: make uv readonly 2014-05-05 17:06:38 +02:00
degasus 6109958e68 ShaderGen: OGL: don't make a copy of "Normal" 2014-05-05 17:06:37 +02:00
degasus 0e0da8c8fd ShaderGen: make clipPos readonly 2014-05-05 17:06:37 +02:00
degasus c80717ac2e PixelShaderGen: extract iround 2014-05-05 17:06:37 +02:00
degasus 2bc2b73e03 PixelShaderGen: drop fmod as it isn't used any more 2014-05-05 17:06:37 +02:00
degasus c82991df5b ShaderGen: inline constant shaders 2014-05-05 17:06:37 +02:00
degasus b0878c54b2 ShaderGen: use cbuffers for D3D 2014-05-05 17:06:37 +02:00
degasus fe9fcfdd07 ShaderGen: merge early-z blocks of ogl+d3d 2014-05-05 17:06:37 +02:00
degasus 3e14bf511f ShaderGen/D3D: inline centroid 2014-05-05 17:06:36 +02:00
degasus 25b8edd2a6 ogl: fix signed vs unsigned comparison warning 2014-05-05 17:06:36 +02:00
degasus f254fdfd96 drop Host_GetKeyState
This function isn't used any more and it shouldn't be used at all as it generates a sync request to the x11 server. So it has to wait for a complete round trip time.
2014-04-30 12:51:13 +02:00
degasus 30586f4d29 Add set/get functions for IsFramelimiterTempDisabled 2014-04-30 12:51:13 +02:00
degasus 8483811b39 Add a hotkey for disabling the framelimit.
Atm this is hardcoded to '\t'.
2014-04-30 12:50:53 +02:00
degasus ee76a51d1f Truncate the path on logging
Cmake compiles we an absolute path, so the macro __FILE__ also has the absolute file in it.
It seems that gcc doesn't provide macros for the basename, so we have to truncate them in c directly:
https://stackoverflow.com/questions/8487986/file-macro-shows-full-path
2014-04-14 10:39:52 +02:00
degasus 96ffbe345d VideoSoftware: remove const memory usage of DebugUtil 2014-04-12 13:32:53 +02:00
degasus f628695d31 comment fixes 2014-02-26 12:48:52 +01:00
degasus aaaa5af0b2 remove (ATTR|VARY)(IN|OUT) macros 2014-02-26 11:37:29 +01:00
degasus 1d0b6a1156 Merge duplicate parts of sampler into header 2014-02-26 11:37:29 +01:00
degasus 11efa88157 calculate constant values on shader compilation 2014-02-26 11:37:29 +01:00
degasus 8a4aa8c1f5 Rewrite texture tiling implementation
inline halfxb

So we know which is the first pixel by masking.

inline xl

inline xb a bit

inline yl

inline uv1.x shift

remove likely wrong guessed ternary operator

add pixel layout comment

inline xel

optimize the shifts a bit

inline xb

optimize shifts in a second step

extract xb

rename all variables

calculate cache line by position.x

Revert 5115b459f40d53044cd7a858f52e6e876e1211b4 "optimize the shifts a bit"

It seems I was wrong, the other way is the more natural.

use x_virtual_position instead of uv1.x for x_offset_in_block

This looks more natural and the offset should be masked anyway.

substitude factor with cache_lines

move 32bit logic in a conditional block
2014-02-26 11:37:29 +01:00
degasus bd3beeb184 TextureConverter: Use Log2() and shifts instead of multiplications/divisions 2014-02-26 11:37:29 +01:00
degasus 94da4e1aa2 MathUtil: Change Log2 return value to int
Log2(u64) can't be bigger than 63, so there is no need in forcing a 64 bit value.
So just using a common int seems more natural.
2014-02-26 11:37:28 +01:00
degasus f99c8a0b70 merge common parts of encoding shaders 2014-02-26 11:37:28 +01:00
degasus 7f539b6033 ogl: optimize real xfb a bit
Both nvidia + mesa seems not to optimize x / (2**n) to x >> n, so we do it ourself.
2014-02-26 11:37:28 +01:00
degasus 8af3f751db Fetch swapInterval function pointer after binding a context
This fixes vsync on windows
2014-02-24 12:45:02 +01:00
degasus e5eff6bc1a Remove slowdown warning
Now it's shown as "debug" which is disabled by default.
2014-02-16 12:57:17 +01:00
degasus 647aad0a19 inline SetViewport into VertexShaderManager 2014-02-15 21:09:42 +01:00
degasus d5f1f0d4a9 merge some common parts of Swap() into VideoCommon 2014-02-15 11:33:43 +01:00
degasus 3551259c7a use EFBRectangle for scissor rect
This one is backend independed. The backend should recalc such things on their own.
2014-02-15 11:33:43 +01:00
degasus 1f4219b5b4 move perfquery enable checks into videocommon (caller side) 2014-02-15 11:33:43 +01:00
degasus 5a660c27bc rename UpdateViewport to SetViewport like all others setters in RenderBase.h 2014-02-15 11:33:43 +01:00
degasus 3cd6918dec fix ogl video config crash
This will happen when playing on any other backend than ogl which have a non-trival GLInterface::GetMode() method.
2014-02-15 11:33:43 +01:00
degasus e5318d2624 move shared parts from VertexManager::vFlush into VideoCommon 2014-02-15 11:33:43 +01:00
degasus 9e56b1d343 Disable framerate correction for OpenAL
OpenAL itself stretch the time on slowdowns, so the Mixer isn't allowed also to change the rate.
2014-02-13 13:22:29 +01:00
degasus bbd58b8f6a change AI sampling rate based on framelimit 2014-02-11 14:53:53 +01:00
degasus ca9fd64df9 controll the interpolation frac by the fifo size 2014-02-11 14:35:19 +01:00
degasus d20dbbc92f audiocommon: sync mixer by fifo instead of estimate values 2014-02-11 07:25:58 +01:00
degasus 2956ffa5be audiocommon: remove 1:1 interpolation
The usual one is 32->48 khz interpolation. So there is no need in a special 1:1 interpolation only for performance.
2014-02-11 07:25:58 +01:00
degasus 532cd44003 Use float to calculate the fps/vps
This will round internally, so 59.99 fps will now be shown as 60 fps.
2014-02-10 16:08:03 +01:00
degasus a51b5f7815 Drop framelimit by fps
Framelimit by fps can't be done per coretiming
2014-02-10 16:08:03 +01:00
degasus f7dc918057 Throttle by coretiming event instead of VI
VI isn't called as regular as we want to, so we have to create a new throttling event called regularly by coretiming.

Atm we throttle every 1 ms when we are too fast and skip throttling when we lack 40ms (to avoid fast boosts after slowdowns)
2014-02-10 16:08:03 +01:00
degasus ab124b96c4 Atomic Stores / Loads 2014-02-07 00:20:10 +01:00
degasus 5c646d334a Pulseaudio: rewrite the pa backend with the async api
The default async api allow us to set some latency options. The old one (simple API) was the lazy way to go for usual audio where latency doesn't matter.

This also streams audio, so it should be a bit faster then the old one.
2014-02-07 00:20:10 +01:00
degasus 6089e4470a OGL: remove ubo workaround
This was only keeped for some broken mesa versions. Meanwhile most used versions should be fixed for almost a year.
2014-02-01 22:33:45 +01:00
degasus 31c3bee5bc VertexShaderGen: fix D3D posmtx attribute regression by VertexLoaderCleanup branch
Sorry, I'm too dumb too test my code. I hope this will work fine now.
2014-02-01 11:35:46 +01:00
degasus 9d87b8b3c8 buildbot: find base revision and generate diff explicit 2014-01-31 07:58:51 +01:00
degasus 91cddd874b GameSettings: wipe cache display lists 2014-01-31 07:40:37 +01:00
degasus 3437c7f060 VideoCommon: small VertexLoader(Manager)? refactoring 2014-01-31 07:31:03 +01:00
degasus 010a0d481a VideoCommon: remove Cache Displaylist
This option was known to break every second game and only boost a bit.
It also seems to be broken because of streaming into pinned memory and buffer storage buffers.

v2: also remove dlc_desc
2014-01-31 07:30:55 +01:00
degasus a65162f1cd PortableVertexFormat: use AttributeFormat for posmtx attribute format 2014-01-31 07:19:34 +01:00
degasus 6c59b691b0 PortableVertexFormat: use AttributeFormat for texcoord attribute format 2014-01-31 07:19:34 +01:00
degasus ef2d6e7d53 PortableVertexFormat: use AttributeFormat for color attribute format 2014-01-31 07:19:34 +01:00
degasus b38ef39ab7 PortableVertexFormat: use AttributeFormat for normal attribute format 2014-01-31 07:19:34 +01:00
degasus 210f4f3e55 PortableVertexFormat: add a struct which hold all needed information for every vertex and use this for position
atm, position attribute is hardcoded both in VertexLoader and in backends.

v2: fix coding style + cleanup lookup table
2014-01-31 07:19:25 +01:00
degasus 02d1d8e6a0 NativeVertexFormat: swap unsigned / signed formats to match GX order 2014-01-30 11:12:10 +01:00