dolphin/Source/Core/VideoCommon
Stenzek 260d5b7aa7 BPMemory: Handle fog configuration where both A and C are infinity/NaN
The console appears to behave against standard IEEE754 specification
here, in particular around how NaNs are handled. NaNs appear to have no
effect on the result, and are treated the same as positive or negative
infinity, based on the sign bit.

However, when the result would be NaN (inf - inf, or (-inf) - (-inf)),
this results in a completely fogged color, or unfogged color
respectively. We handle this by returning a constant zero for the A
varaible, and positive or negative infinity for C depending on the sign
bits of the A and C registers. This ensures that no NaN value is passed
to the GPU in the first place, and that the result of the fog
calculation cannot be NaN.
2018-02-01 17:40:39 +10:00
..
AVIDump.cpp AVIDump: Remove incorrect usage of s_ prefix 2018-01-17 22:19:14 +01:00
AVIDump.h MSVC: define HAVE_FFMPEG 2017-05-26 00:53:58 -07:00
AbstractStagingTexture.cpp VideoBackends: Add AbstractStagingTexture class 2017-11-22 18:47:04 +10:00
AbstractStagingTexture.h VideoBackends: Add AbstractStagingTexture class 2017-11-22 18:47:04 +10:00
AbstractTexture.cpp AbstractTexture: Fix crash in Vulkan backend when freeing texture 2018-01-26 19:12:11 +10:00
AbstractTexture.h AbstractTexture: Fix crash in Vulkan backend when freeing texture 2018-01-26 19:12:11 +10:00
AsyncRequests.cpp VideoCommon: Eliminate static state in Renderer 2017-03-04 16:39:50 +10:00
AsyncRequests.h specify custom brace style to fix unions 2017-01-05 12:55:13 +01:00
AsyncShaderCompiler.cpp VideoBackends: Support a different number of threads for precompiling 2017-07-30 17:43:59 +10:00
AsyncShaderCompiler.h AsyncShaderCompiler: use std::make_unique in CreateWorkItem() 2017-09-02 14:08:00 -04:00
BPFunctions.cpp Renderer: Move cull mode to a rasterization state object 2017-09-11 20:01:45 +10:00
BPFunctions.h RenderBase: Drop SetColorMask and SetLogicOpMode 2017-09-03 14:14:54 +10:00
BPMemory.cpp BPMemory: Handle fog configuration where both A and C are infinity/NaN 2018-02-01 17:40:39 +10:00
BPMemory.h BPMemory: Handle fog configuration where both A and C are infinity/NaN 2018-02-01 17:40:39 +10:00
BPStructs.cpp VideoCommon: Apply the yscale as upscaling of the XFB. 2018-01-06 10:36:33 +01:00
BPStructs.h VideoCommon: Header cleanup 2016-01-17 20:11:45 -05:00
BoundingBox.cpp Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
BoundingBox.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
CMakeLists.txt VideoBackends: Use VideoCommon shader generators for efb2tex copies. 2017-12-02 15:17:39 +01:00
CPMemory.cpp Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
CPMemory.h specify custom brace style to fix unions 2017-01-05 12:55:13 +01:00
CommandProcessor.cpp Call Do for every member of SCPFifoStruct individually 2017-11-13 19:51:16 +01:00
CommandProcessor.h Call Do for every member of SCPFifoStruct individually 2017-11-13 19:51:16 +01:00
ConstantManager.h Enable shader_framebuffer_fetch blend path on ubershaders 2018-01-05 09:56:46 -08:00
DataReader.h Common: Move byte swapping utilities into their own header 2017-03-03 17:18:18 -05:00
Debugger.cpp Further fixes to the formatting change. WX sucks. 2016-06-24 12:16:10 +02:00
Debugger.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
DriverDetails.cpp Vulkan: Extend the NVIDIA MSAA bug to render-pass based clears 2017-09-07 17:05:43 +10:00
DriverDetails.h Vulkan: Extend the NVIDIA MSAA bug to render-pass based clears 2017-09-07 17:05:43 +10:00
FPSCounter.cpp Don't use wrong encoding for paths when opening streams on Windows 2017-12-05 21:23:35 +01:00
FPSCounter.h VideoCommon: Improve precision of FPS counter 2017-07-30 12:38:48 +10:00
Fifo.cpp CommandProcessor: Remove unnecessary include 2017-09-02 13:34:21 -04:00
Fifo.h Fifo: const correctness 2017-03-26 23:08:33 -04:00
FramebufferManagerBase.cpp VideoBackends: Remove header inclusions made unnecessary with Hybrid XFB 2017-11-19 00:53:10 -05:00
FramebufferManagerBase.h VideoBackends: Remove header inclusions made unnecessary with Hybrid XFB 2017-11-19 00:53:10 -05:00
GeometryShaderGen.cpp VideoConfig: Make StereoMode an enum class 2017-11-18 23:19:53 -05:00
GeometryShaderGen.h VideoBackends: Move SamplerState to common 2017-09-11 20:01:54 +10:00
GeometryShaderManager.cpp VideoConfig: Make StereoMode an enum class 2017-11-18 23:19:53 -05:00
GeometryShaderManager.h VideoBackends: Merge Initialize and Shutdown functions. 2016-06-26 12:34:59 +02:00
HiresTextures.cpp CustomTexture: Drop old texture format. 2018-01-20 17:08:47 +01:00
HiresTextures.h Treat custom textures with "_arb" suffix as having arbitrary mipmaps 2018-01-10 17:51:45 +01:00
HiresTextures_DDSLoader.cpp HiresTextures: Support loading BC7 (BPTC) from DDS files 2017-08-01 11:59:38 +10:00
ImageWrite.cpp Add a namespace to OpenFStream 2017-06-15 21:34:04 +02:00
ImageWrite.h ImageWriter: Don't use inplace alpha truncation. 2016-10-08 12:02:49 +02:00
IndexGenerator.cpp fix various instances of -1 being assigned to unsigned types 2017-06-07 19:52:07 -07:00
IndexGenerator.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
LightingShaderGen.cpp LightingShaderGen: Always calculate lighting for both color channels 2017-11-22 01:52:18 +10:00
LightingShaderGen.h LightingShaderGen: Always calculate lighting for both color channels 2017-11-22 01:52:18 +10:00
LookUpTables.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
MainBase.cpp VideoCommon: Re-implement asynchronous frame dumping 2017-11-22 18:49:33 +10:00
NativeVertexFormat.h Remove NonCopyable 2017-08-22 16:40:34 +02:00
OnScreenDisplay.cpp Revert "Merge pull request #4286 from shuffle2/Aestek-clean-osd" 2016-10-15 12:44:37 +02:00
OnScreenDisplay.h Revert "Merge pull request #4286 from shuffle2/Aestek-clean-osd" 2016-10-15 12:44:37 +02:00
OpcodeDecoding.cpp CommandProcessor: Limit scope of ugly SCPFifoStruct. 2017-01-27 19:04:56 +01:00
OpcodeDecoding.h OpcodeDecoding: Convert #defines into enum constants 2017-02-08 00:05:17 -05:00
PerfQueryBase.cpp Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
PerfQueryBase.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
PixelEngine.cpp CommandProcessor: Remove unnecessary include 2017-09-02 13:34:21 -04:00
PixelEngine.h PixelEngine: Move enum constants into the PixelEngine namespace 2017-02-28 07:01:50 -05:00
PixelShaderGen.cpp Enable shader_framebuffer_fetch blend path on ubershaders 2018-01-05 09:56:46 -08:00
PixelShaderGen.h Implement dual-source blending in shader 2018-01-05 09:56:46 -08:00
PixelShaderManager.cpp BPMemory: Handle fog configuration where both A and C are infinity/NaN 2018-02-01 17:40:39 +10:00
PixelShaderManager.h Ubershaders: Fix 6-bit color truncation not being applied 2017-08-01 00:01:09 +10:00
PostProcessing.cpp VideoConfig: Make StereoMode an enum class 2017-11-18 23:19:53 -05:00
PostProcessing.h VideoConfigDiag: Move post-processing shader list to post processor 2017-04-25 14:27:05 +10:00
RenderBase.cpp Merge pull request #6303 from TraceBullet/auto-adjust-window-size 2018-01-29 17:28:44 +10:00
RenderBase.h AbstractTexture: Move Bind() method to Renderer 2018-01-22 13:22:09 +10:00
RenderState.cpp Fixed fog, lava, water in Mario Galaxy (and possibly other games) in higher IRs by detecting & fixing the mipmaps that aren't just used for downscaling, but are handmade to create a gradient. 2017-10-27 00:45:20 -07:00
RenderState.h Fixed fog, lava, water in Mario Galaxy (and possibly other games) in higher IRs by detecting & fixing the mipmaps that aren't just used for downscaling, but are handmade to create a gradient. 2017-10-27 00:45:20 -07:00
SamplerCommon.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
ShaderGenCommon.cpp Implement dual-source blending in shader 2018-01-05 09:56:46 -08:00
ShaderGenCommon.h Implement dual-source blending in shader 2018-01-05 09:56:46 -08:00
Statistics.cpp VertexLoaderManager: Return debug strings by value 2017-03-26 23:50:09 -04:00
Statistics.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
TextureCacheBase.cpp AbstractTexture: Move Bind() method to Renderer 2018-01-22 13:22:09 +10:00
TextureCacheBase.h VideoCommon: Apply the yscale as upscaling of the XFB. 2018-01-06 10:36:33 +01:00
TextureConfig.cpp VideoBackends: Add AbstractStagingTexture class 2017-11-22 18:47:04 +10:00
TextureConfig.h VideoBackends: Add AbstractStagingTexture class 2017-11-22 18:47:04 +10:00
TextureConversionShader.cpp Some more implicit uint/float conversions in the texture decode shaders 2018-01-11 11:15:40 -08:00
TextureConversionShader.h VideoCommon: Rename TextureConversionShader namespace. 2017-12-02 15:17:39 +01:00
TextureConverterShaderGen.cpp Reimplement EFB copy for intensity formats 2017-12-19 12:04:56 +01:00
TextureConverterShaderGen.h VideoCommon: Create a namespace for TextureConversionShaderGen. 2017-12-02 15:17:39 +01:00
TextureDecoder.h Add support for hybrid XFB 2017-11-17 19:47:56 -06:00
TextureDecoder_Common.cpp HybridXFB: Fix lint errors 2017-11-17 22:11:31 -06:00
TextureDecoder_Generic.cpp Video: Clearly separate Texture and EFB Copy formats 2017-08-03 18:35:29 -07:00
TextureDecoder_Util.h TextureDecoder: Deduplicate some utility code 2017-01-15 20:23:26 +11:00
TextureDecoder_x64.cpp Hybrid XFB: Fix lint errors 2017-11-17 22:11:34 -06:00
UberShaderCommon.cpp Fix an invalid (uint < int) comparison in GLES with ubershaders 2017-12-10 10:52:32 -08:00
UberShaderCommon.h Ubershaders: Support per-pixel lighting 2017-07-30 17:43:59 +10:00
UberShaderPixel.cpp Enable shader_framebuffer_fetch blend path on ubershaders 2018-01-05 09:56:46 -08:00
UberShaderPixel.h VideoBackends: Clear uid bits that are unused for the current backend 2017-09-05 23:49:42 +10:00
UberShaderVertex.cpp LightingShaderGen: Always calculate lighting for both color channels 2017-11-22 01:52:18 +10:00
UberShaderVertex.h ShaderGen: Implement vertex ubershaders 2017-07-30 17:43:59 +10:00
VertexLoader.cpp VertexLoaderJit: Fix out-of-bounds access for zfreeze. 2016-09-17 16:47:12 +02:00
VertexLoader.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
VertexLoaderARM64.cpp Merge pull request #4210 from degasus/arm 2016-09-27 18:45:14 +02:00
VertexLoaderARM64.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
VertexLoaderBase.cpp VertexLoaderBase: Return debug strings by value 2017-03-26 23:49:59 -04:00
VertexLoaderBase.h fix various instances of -1 being assigned to unsigned types 2017-06-07 19:52:07 -07:00
VertexLoaderManager.cpp Vulkan: Uber shader support 2017-07-30 17:43:59 +10:00
VertexLoaderManager.h Vulkan: Uber shader support 2017-07-30 17:43:59 +10:00
VertexLoaderUtils.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
VertexLoaderX64.cpp Remove code for only allocating low memory 2017-05-20 09:35:53 +02:00
VertexLoaderX64.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
VertexLoader_Color.cpp Common: Move byte swapping utilities into their own header 2017-03-03 17:18:18 -05:00
VertexLoader_Color.h VideoCommon: Header cleanup 2016-01-17 20:11:45 -05:00
VertexLoader_Normal.cpp Common: Move byte swapping utilities into their own header 2017-03-03 17:18:18 -05:00
VertexLoader_Normal.h Common: Move byte swapping utilities into their own header 2017-03-03 17:18:18 -05:00
VertexLoader_Position.cpp Common: Move byte swapping utilities into their own header 2017-03-03 17:18:18 -05:00
VertexLoader_Position.h Common: Move byte swapping utilities into their own header 2017-03-03 17:18:18 -05:00
VertexLoader_TextCoord.cpp Common: Move byte swapping utilities into their own header 2017-03-03 17:18:18 -05:00
VertexLoader_TextCoord.h Common: Move byte swapping utilities into their own header 2017-03-03 17:18:18 -05:00
VertexManagerBase.cpp VideoCommon: Apply custom texture scale for arbitrary mipmaps. 2018-01-17 09:02:36 +01:00
VertexManagerBase.h Renderer: Move cull mode to a rasterization state object 2017-09-11 20:01:45 +10:00
VertexShaderGen.cpp LightingShaderGen: Always calculate lighting for both color channels 2017-11-22 01:52:18 +10:00
VertexShaderGen.h ShaderGen: Pass host config to shader generation functions 2017-07-20 17:54:33 +10:00
VertexShaderManager.cpp ConstantManager: Use std::array where applicable 2017-08-27 15:41:36 -04:00
VertexShaderManager.h ShaderGen: Implement vertex ubershaders 2017-07-30 17:43:59 +10:00
VideoBackendBase.cpp Remove D3D12 2017-05-18 17:01:12 -07:00
VideoBackendBase.h Video Common: Improve texture dumping to work with fifoci and 2017-11-17 22:11:32 -06:00
VideoCommon.h MAX_XFB_HEIGHT: PAL value off by two fixed 2017-12-30 20:22:10 +01:00
VideoCommon.vcxproj VideoBackends: Use VideoCommon shader generators for efb2tex copies. 2017-12-02 15:17:39 +01:00
VideoCommon.vcxproj.filters VideoBackends: Use VideoCommon shader generators for efb2tex copies. 2017-12-02 15:17:39 +01:00
VideoConfig.cpp CustomTextures: Drop format convertion. 2018-01-20 16:39:04 +01:00
VideoConfig.h CustomTextures: Drop format convertion. 2018-01-20 16:39:04 +01:00
VideoState.cpp VertexManagerBase: Get rid of static behavior 2016-08-21 23:30:38 -04:00
VideoState.h VideoBackends: Merge Initialize and Shutdown functions. 2016-06-26 12:34:59 +02:00
XFMemory.cpp VideoCommon: Header cleanup 2016-01-17 20:11:45 -05:00
XFMemory.h VideoCommon: Use constant for number of color channels in XFMemory 2017-11-20 23:18:44 +10:00
XFStructs.cpp ShaderGen: Implement vertex ubershaders 2017-07-30 17:43:59 +10:00
XFStructs.h Set copyright year to when a file was created 2015-05-25 13:22:31 +02:00
sfont.inc Update license headers to GPLv2+ 2015-05-25 13:22:31 +02:00