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
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
BPMemory.cpp
BPMemory.h
BPStructs.cpp
BPStructs.h
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
Debugger.h
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.h
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
GeometryShaderManager.cpp Ensure that ZSlopes save/restore state correctly. 2015-01-23 03:32:31 +13:00
GeometryShaderManager.h
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
ImageWrite.h
IndexGenerator.cpp
IndexGenerator.h
LightingShaderGen.h Cleaned up whitespace 2015-01-21 22:30:41 -07:00
LookUpTables.h
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
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
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
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
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
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
TextureDecoder.h Formatting/Whitespace Cleanup 2015-02-25 10:48:21 -05: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
VertexLoader_Position.cpp VertexLoaders: make positions more compact 2015-03-18 12:09:06 +01:00
VertexLoader_Position.h
VertexLoader_TextCoord.cpp VertexLoader: remove non-JIT SSE code 2015-01-20 01:51:07 +01:00
VertexLoader_TextCoord.h
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
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
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
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.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
VideoState.h
XFMemory.cpp
XFMemory.h Lighting Attenuation Fixes 2015-01-21 15:55:32 -07:00
XFStructs.cpp
XFStructs.h