dolphin/Source/Core/VideoCommon
comex 06dd0ba3b4 Exit ReadDataFromFifoOnCPU, PushFifoAuxBuffer early if shutting down (GpuRunningState=false)
This was causing a race condition where the "absurdly large aux buffer"
panic alert would be triggered in the last bit of fifo processing on the
CPU thread in deterministic mode (i.e. netplay).  SyncGPU is supposed to
move the auxiliary queue data to the beginning of the containing buffer
so we don't have to deal with wraparound; if GpuRunningState is false,
however, it just returns, because it's set to false by another thread -
thus it doesn't know whether RunGpuLoop is still executing (in which
case it can't just reset the pointers, because it may still be using the
buffer) or not (in which case the condition variable it normally waits
for to avoid the previous problem will never be signaled).  However,
SyncGPU's caller PushFifoAuxBuffer wasn't aware of this, so if the
buffer was filling at just the right time, it'd stay full and that
function would complain that it was about to overflow it.  Similar
problem with ReadDataFromFifoOnCPU afaik.  Fix this by returning early
from those as well; other callers of SyncGPU should be safe.  A
*slightly* cleaner alternative would be giving the CPU thread a way to
tell when RunGpuLoop has actually exited, but whatever, this works.
2015-04-21 22:33:29 -04:00
..
AsyncRequests.cpp Fifo: Replace busy loop with condition variable 2015-04-06 12:35:27 +02:00
AsyncRequests.h VideoCommon: perf querys by async events 2015-02-22 08:41:15 +01:00
AVIDump.cpp Windows AVIDump: support "silent" frame dumping 2015-02-14 23:38:14 +01:00
AVIDump.h Proper Audio/Video Dumping 2014-10-09 00:06:04 -04:00
BoundingBox.cpp VertexLoader: Add a VertexLoader pointer to each function call 2014-12-21 14:13:04 +01:00
BoundingBox.h VertexLoader: Add a VertexLoader pointer to each function call 2014-12-21 14:13:04 +01:00
BPFunctions.cpp VideoCommon: always enable efb copy 2015-02-24 23:01:01 +01:00
BPFunctions.h VideoCommon: Merge LineGeometryShader into GeometryShaderGen. 2014-12-15 22:47:42 +01:00
BPMemory.cpp Include CommonTypes.h instead of Common.h. 2014-09-08 15:39:58 -04:00
BPMemory.h Silence some -Wswitch-default warnings. 2014-12-11 22:23:05 -06:00
BPStructs.cpp VideoCommon: split VertexLoaderBase from VertexLoader 2014-12-21 14:12:43 +01:00
BPStructs.h Add the 'desynced GPU thread' mode. 2014-09-28 21:34:29 -04:00
CMakeLists.txt VideoCommon: use a new async event system for efb access 2015-02-22 08:41:15 +01:00
CommandProcessor.cpp Fifo: only sleep once within every ms of emulated time 2015-04-06 12:35:35 +02:00
CommandProcessor.h Fifo: only sleep once within every ms of emulated time 2015-04-06 12:35:35 +02:00
ConstantManager.h Make zfreeze use screenspace coordinates independant of IR. 2015-01-23 03:32:31 +13:00
CPMemory.cpp Fix indentation 2015-01-07 21:51:47 +01:00
CPMemory.h VertexLoaderX64: support VAT.ByteDequant=0 2015-01-20 09:23:15 +01:00
DataReader.h DataReader: turn WritePointer into GetPointer 2015-01-18 12:59:33 +01:00
Debugger.cpp Core: Remove UpdateFPSDisplay 2014-08-19 10:05:58 -04:00
Debugger.h Remove some unnecessary semicolons 2014-09-11 13:05:31 -04:00
DriverDetails.cpp DriverDetails: Remove Intel Structs bug since it doesn't affect us anymore. 2014-12-28 23:28:00 +01:00
DriverDetails.h Minor consistency changes 2015-01-12 15:18:18 -05:00
Fifo.cpp Exit ReadDataFromFifoOnCPU, PushFifoAuxBuffer early if shutting down (GpuRunningState=false) 2015-04-21 22:33:29 -04:00
Fifo.h Fifo: rewrite sync on idle skipping hack 2015-04-06 12:35:35 +02:00
FPSCounter.cpp FPSCounter: Initialize members. 2014-07-26 14:37:18 +02:00
FPSCounter.h FPSCounter: Remove redundant destructor. 2014-07-18 12:49:40 +02:00
FramebufferManagerBase.cpp Use emplace_* functions where in-place construction is preferable 2015-02-04 11:39:08 -05:00
FramebufferManagerBase.h Use emplace_* functions where in-place construction is preferable 2015-02-04 11:39:08 -05:00
GeometryShaderGen.cpp GeometryShaderGen: Perspective divide the line coordinates before comparing the angle. 2015-01-31 23:32:23 +01:00
GeometryShaderGen.h VideoCommon: Make IsPassthrough() a function of the ShaderUid. 2014-12-19 14:10:53 +01:00
GeometryShaderManager.cpp Ensure that ZSlopes save/restore state correctly. 2015-01-23 03:32:31 +13:00
GeometryShaderManager.h GeometryShaderManager: Set stereo parameters in a SetConstants() call. 2014-12-20 13:16:26 +01:00
HiresTextures.cpp CustomTexture: fix texture format 2015-01-21 23:33:42 +01:00
HiresTextures.h CustomTexture: also support the legacy format 2015-01-21 21:22:55 +01:00
ImageWrite.cpp Various formatting and consistency fixes 2014-11-13 22:42:18 -05:00
ImageWrite.h Include CommonTypes.h instead of Common.h. 2014-09-08 15:39:58 -04:00
IndexGenerator.cpp Include CommonTypes.h instead of Common.h. 2014-09-08 15:39:58 -04:00
IndexGenerator.h Video backends: warn on usage of GL_DRAW_QUADS_2. 2014-05-17 11:55:32 -07:00
LightingShaderGen.h Cleaned up whitespace 2015-01-21 22:30:41 -07:00
LookUpTables.h Include CommonTypes.h instead of Common.h. 2014-09-08 15:39:58 -04:00
MainBase.cpp Fifo: rewrite sync on idle skipping hack 2015-04-06 12:35:35 +02:00
MainBase.h VideoCommon: implement swap requests in the full async way 2015-02-22 08:41:15 +01:00
NativeVertexFormat.h Stop doing nastly shit to OpenGL stream buffers. 2015-01-24 14:41:51 +13:00
OnScreenDisplay.cpp OnScreenDisplay: Allow for different colored messages 2015-02-07 17:35:21 -05:00
OnScreenDisplay.h OnScreenDisplay: Allow for different colored messages 2015-02-07 17:35:21 -05:00
OpcodeDecoding.cpp Fix warnings 2015-03-16 19:02:30 +01:00
OpcodeDecoding.h Show no more than one FIFO error per session. 2015-03-13 23:25:15 +11:00
PerfQueryBase.cpp clang-modernize -use-nullptr 2014-03-09 21:14:26 +01:00
PerfQueryBase.h PerfQueryBase: Move common implementation variables into base class 2015-04-15 19:22:16 -04:00
PixelEngine.cpp Fifo: rewrite sync on idle skipping hack 2015-04-06 12:35:35 +02:00
PixelEngine.h Reimplement Bounding Box calculation using the software renderer. 2014-10-10 12:27:06 +01:00
PixelShaderGen.cpp Merge pull request #2075 from magumagu/titantron-fix 2015-02-21 10:09:47 +01:00
PixelShaderGen.h A few small cleanups based on code review. 2015-01-23 04:38:36 +13:00
PixelShaderManager.cpp TextureCache: load all mipmap levels from custom textures 2015-03-02 00:09:09 +01:00
PixelShaderManager.h TextureCache: load all mipmap levels from custom textures 2015-03-02 00:09:09 +01:00
PostProcessing.cpp Use emplace_* functions where in-place construction is preferable 2015-02-04 11:39:08 -05:00
PostProcessing.h PostProcessing: Add layered stereoscopy support. 2014-11-23 14:23:41 +01:00
RenderBase.cpp Merge pull request #2058 from Stevoisiak/Codemaid-Cleanup-Take2 2015-02-25 18:07:56 -05:00
RenderBase.h TextureCache: load all mipmap levels from custom textures 2015-03-02 00:09:09 +01:00
sfont.inc VideoCommon: Start putting common texture decoding code in TextureDecoder_Common 2014-09-04 18:36:53 -07:00
ShaderGenCommon.h Formatting/Whitespace Cleanup 2015-02-25 10:48:21 -05:00
Statistics.cpp Formatting/Whitespace Cleanup 2015-02-25 10:48:21 -05:00
Statistics.h TexCache: also incude textures within the render target pool 2015-01-18 19:47:48 +01:00
TextureCacheBase.cpp TextureCache: load all mipmap levels from custom textures 2015-03-02 00:09:09 +01:00
TextureCacheBase.h General: Apply the const specifier where applicable 2015-04-15 02:04:03 -04:00
TextureConversionShader.cpp TextureConversionShader: Use a Texture2DArray to match the shader resource view. 2015-02-21 11:50:20 +01:00
TextureConversionShader.h Include CommonTypes.h instead of Common.h. 2014-09-08 15:39:58 -04:00
TextureDecoder.h Formatting/Whitespace Cleanup 2015-02-25 10:48:21 -05:00
TextureDecoder_Common.cpp Formatting/Whitespace Cleanup 2015-02-25 10:48:21 -05:00
TextureDecoder_Generic.cpp TexCache: remove PC_TexFormat 2015-01-18 19:47:48 +01:00
TextureDecoder_x64.cpp Clean up the intrinsics #ifdef mess 2015-02-24 01:02:36 +01:00
VertexLoader.cpp VertexLoaders: make positions more compact 2015-03-18 12:09:06 +01:00
VertexLoader.h Change RunVertices' function arguments. 2015-02-13 12:16:06 -06:00
VertexLoader_Color.cpp Formatting/Whitespace Cleanup 2015-02-25 10:48:21 -05:00
VertexLoader_Color.h VertexLoader: Add a VertexLoader pointer to each function call 2014-12-21 14:13:04 +01:00
VertexLoader_Normal.cpp VertexLoader: remove non-JIT SSE code 2015-01-20 01:51:07 +01:00
VertexLoader_Normal.h Add missing includes where headers depend on other headers having been included first. 2014-10-21 21:22:16 -04:00
VertexLoader_Position.cpp VertexLoaders: make positions more compact 2015-03-18 12:09:06 +01:00
VertexLoader_Position.h Add missing includes where headers depend on other headers having been included first. 2014-10-21 21:22:16 -04:00
VertexLoader_TextCoord.cpp VertexLoader: remove non-JIT SSE code 2015-01-20 01:51:07 +01:00
VertexLoader_TextCoord.h VertexLoader: Change VtxDesc to use u64 instead of u32 2014-09-01 11:18:02 +02:00
VertexLoaderARM64.cpp VertexLoaders: make positions more compact 2015-03-18 12:09:06 +01:00
VertexLoaderARM64.h [AArch64] Change the vertex loader over to using unscaled loadstores. 2015-02-16 22:03:09 -06:00
VertexLoaderBase.cpp Formatting/Whitespace Cleanup 2015-02-25 10:48:21 -05:00
VertexLoaderBase.h Change RunVertices' function arguments. 2015-02-13 12:16:06 -06:00
VertexLoaderManager.cpp Merge pull request #2050 from Tilka/reset_vertex_loader_stats 2015-02-23 13:10:38 +11:00
VertexLoaderManager.h VertexLoaderManager: assimilate GetVertexSize() 2015-01-31 09:23:50 +01:00
VertexLoaderUtils.h VideoSW: rewrite VertexLoader to use the VideoCommon one 2014-12-13 10:29:08 +01:00
VertexLoaderX64.cpp VertexLoaderX64: use common code for FORMAT_FLOAT 2015-03-18 12:12:21 +01:00
VertexLoaderX64.h VertexLoaderX64: support SSE2 as a fallback 2015-03-18 12:12:21 +01:00
VertexManagerBase.cpp TextureCache: load all mipmap levels from custom textures 2015-03-02 00:09:09 +01:00
VertexManagerBase.h Formatting/Whitespace Cleanup 2015-02-25 10:48:21 -05:00
VertexShaderGen.cpp Formatting/Whitespace Cleanup 2015-02-25 10:48:21 -05:00
VertexShaderGen.h VideoCommon: Assume we always use a geometry shader, not just for stereoscopy. 2014-12-15 22:47:41 +01:00
VertexShaderManager.cpp Formatting/Whitespace Cleanup 2015-02-25 10:48:21 -05:00
VertexShaderManager.h Coding style cleanup from the zfreeze merge 2015-01-24 15:16:48 -05:00
VideoBackendBase.cpp Remove an old GLES define that I missed. 2015-01-23 14:30:23 -06:00
VideoBackendBase.h Fifo: rewrite sync on idle skipping hack 2015-04-06 12:35:35 +02:00
VideoCommon.h VideoCommon: Rename s_pCurBufferPointer 2014-12-09 18:56:27 +01:00
VideoCommon.vcxproj VideoCommon: use a new async event system for efb access 2015-02-22 08:41:15 +01:00
VideoCommon.vcxproj.filters VideoCommon: use a new async event system for efb access 2015-02-22 08:41:15 +01:00
VideoConfig.cpp Merge pull request #2058 from Stevoisiak/Codemaid-Cleanup-Take2 2015-02-25 18:07:56 -05:00
VideoConfig.h VideoCommon: rename efb2tex and efb2ram 2015-02-24 23:10:13 +01:00
VideoState.cpp VideoCommon: Add a separate constants buffer for the geometry shader. 2014-12-14 21:23:13 +01:00
VideoState.h Convert some more header inclusions into forward declarations 2014-07-29 20:55:07 -04:00
XFMemory.cpp Video backends: mass-replace "xfregs" with "xfmem". 2014-05-16 18:58:07 -07:00
XFMemory.h Lighting Attenuation Fixes 2015-01-21 15:55:32 -07:00
XFStructs.cpp VideoCommon: Add a separate constants buffer for the geometry shader. 2014-12-14 21:23:13 +01:00
XFStructs.h Convert all includes to relative paths. 2014-02-18 02:19:10 -05:00