Florent Castelli
e55ec1ed35
cmake: Build D3D and D3D12 video backends
2017-01-21 00:35:55 +01:00
BhaaL
23d99f2f2c
specify custom brace style to fix unions
...
BreakBeforeBraces: Allman apparently includes all styles,
except for AfterUnion (which is false) when using clang-format -dump-config
2017-01-05 12:55:13 +01:00
degasus
41b0c74e30
VideoCommon: Make dst_alpha state implicit.
2017-01-04 20:02:31 +01:00
Jules Blok
65b5765858
VideoBackends: Clamp the range to the maximum depth value supported in the z buffer.
2016-12-27 20:25:40 +01:00
Jules Blok
2ab6711f43
VideoBackends: Use the full depth range when inverted depth range is unsupported.
2016-12-27 14:31:17 +01:00
Jules Blok
ef82aebb97
VideoCommon: Don't process the depth range in the vertex shader if it's not oversized.
2016-12-27 14:31:17 +01:00
degasus
abf9bb170b
TextureCache: Drop unused parameter in backend API.
2016-12-26 22:10:32 +01:00
degasus
04f319066d
TextureCache: Extract BP enum check to VideoCommon.
...
We have TOO many video backends.
2016-12-26 22:10:21 +01:00
Mat M
9160be50db
Merge pull request #4224 from lioncash/tcache
...
TextureCacheBase: Eliminate static state
2016-12-23 04:33:42 -05:00
Stenzek
accce4294a
TextureCache: Use same color coefficients for EFB2Tex as EFB2RAM
2016-12-15 02:20:46 +10:00
Lioncash
58a5395173
TextureCacheBase: Eliminate static state
2016-12-09 16:50:37 -05:00
Léo Lam
31ccfffd38
Common: Add alignment header
...
Gets rid of duplicated alignment code.
2016-12-06 20:33:53 +01:00
Stenzek
6db0ee9561
VideoCommon: Remove backbuffer size parameters from methods
...
We have the s_backbuffer_{width,height} fields to represent this, so
there's no point in passing them as parameters every time.
2016-11-28 20:14:59 +10:00
Stenzek
a0a62c0f46
VideoConfig: Add option for full-resolution frame dumping
2016-11-28 20:14:59 +10:00
Léo Lam
72e3f1ecec
Remove unnecessary ConfigManager includes
...
Making changes to ConfigManager.h has always been a pain, because
it means rebuilding half of Dolphin, since a lot of files depend on
and include this header.
However, it turns out some includes are unnecessary. This commit
removes ConfigManager includes from files which don't contain
SConfig or GPUDeterminismMode or GPU_DETERMINISM (which means the
ConfigManager include is not used).
(I've also had to get rid of some indirect includes.)
2016-11-27 22:38:38 +01:00
Jules Blok
9909babe2c
D3DBase: Create the swapchain in fullscreen mode if enabled.
2016-11-11 20:36:10 +01:00
Jules Blok
0a194f8a3e
VideoConfig: Remove fullscreen flags.
...
These weren't actually settings, they were used as a bad way to communicate with the GPU thread.
2016-11-11 20:36:09 +01:00
degasus
be29090aae
AVIDump: Add a struct for the state.
...
So AddFrame use no global state and can be threaded well.
2016-11-04 18:35:42 +01:00
Markus Wick
9ce1cdde98
Merge pull request #4414 from linkmauve/single-newline
...
Remove double newlines at the end of *_LOG messages
2016-11-02 12:20:46 +01:00
Emmanuel Gil Peyrot
c9e6b05ce9
Core: Remove double newlines at the end of *_LOG messages.
2016-11-02 02:09:33 +00:00
Markus Wick
b9e4370023
Merge pull request #4383 from Sintendo/minor-text-fixes
...
Fix minor comment typos
2016-10-31 12:51:42 +01:00
JosJuice
1081497cad
DiscIO/SConfig: Rename GetUniqueID to GetGameID
...
We call this "game ID" everywhere else, and it's not
actually completely unique.
2016-10-29 15:24:02 +02:00
Sintendo
f163bd1048
Fix various comment typos
2016-10-24 18:27:49 +02:00
Jules Blok
2536e37ec5
Merge pull request #4194 from Armada651/efb-source-format
...
PixelShaderGen: Add support for RGBA6 EFB format truncation.
2016-10-21 21:45:29 +00:00
Jules Blok
ab5054c34e
VideoBackends: Always enable dual-source blending if supported.
2016-10-10 17:32:51 +02:00
degasus
9f264c0872
AVIDump: Move CoreTiming into caller.
2016-10-10 12:03:18 +02:00
Markus Wick
a583d36c7f
Merge pull request #4326 from degasus/framedump
...
Framedump: Merge screenshot code with framedumping.
2016-10-10 11:48:57 +02:00
Markus Wick
a86b2c15d8
Merge pull request #4322 from Helios747/I_hate_features
...
Remove Frameskip
2016-10-08 21:41:43 +02:00
degasus
64927a2f81
Renderer: Merge screenshot logic into VideoCommon.
2016-10-08 19:38:57 +02:00
anthony
b427ead0cc
Remove Frameskip
2016-10-08 11:49:51 -05:00
degasus
db0509560e
AVIDump: Hard code rgba.
2016-10-08 18:16:32 +02:00
degasus
0864ef4352
VideoCommon: Add custom stride for framedumping.
2016-10-08 15:44:54 +02:00
degasus
1ef5ba0c53
D3D: Skip redundant format convertions.
2016-10-08 15:40:49 +02:00
degasus
b5a91e1dfa
Framedumps: Add finish() function to limit memory lifetime.
2016-10-08 15:39:22 +02:00
degasus
ebc617882b
VideoCommon: Drop RepeatFrameDumpFrame helper.
...
This was needed with fixed framerate dumping. As we now synchronize the frames, the last one will just get padded.
2016-10-08 15:39:21 +02:00
degasus
6b08830a95
D3D12: Use VideoCommon framedump helpers.
2016-10-07 23:15:10 +02:00
Markus Wick
ef1bfc26b2
Merge pull request #4291 from degasus/shader_gen
...
PixelShaderGen: Fix UID issues.
2016-10-05 12:20:58 +02:00
Chris Burgener
43c48a6f48
Fix frame dumps on file close in certain situations
2016-10-04 09:26:23 -04: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
86112c7258
VideoCommon: Minor changes
...
Make Renderer::GetMaxTextureSize return u32 instead of int.
2016-10-03 06:51:46 -07:00
Stenzek
828aac7890
VideoBackends: Make TextureCache::CompileShaders return a bool
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
Markus Wick
cb759528e0
Merge pull request #3893 from hthh/perf-query-bug
...
Improve PerfQuery accuracy
2016-09-27 13:07:35 +02:00
Scott Mansell
f5c70a4b27
EFB2RAM: Downsample higher resolutions with linear filtering.
2016-09-07 11:17:32 +12:00
Lioncash
9e26ef4aa8
D3D12: Remove unnecessary renderer global references
2016-08-31 14:14:51 -04:00
Scott Mansell
0fbf72cbf1
Merge pull request #4140 from Armada651/ww-depth
...
D3D: Correctly invert the viewport depth range.
2016-08-24 02:28:53 +12:00
Jules Blok
a8a9348913
OGL: Handle cases where reversed depth is already used.
2016-08-23 15:54:04 +02:00
Jules Blok
65472260d8
D3D: Correctly invert the viewport depth range.
2016-08-23 09:57:11 +02:00
Lioncash
2bf05a544d
VertexManager: Correct variable naming scheme
...
Altered to indicate regular class members
2016-08-22 20:01:00 -04:00
Jules Blok
7078216b61
Improve documentation.
2016-08-16 21:09:58 +02:00
Jules Blok
8c1c7fc2da
Cosmetics.
2016-08-15 13:11:30 +02:00
Jules Blok
a141e91dd2
OGL: Check for GL_DEPTH_CLAMP support.
...
It's not available in OpenGL ES and officially it's not supported on OpenGL 3.0/3.1.
Fallback to old depth range code if there is no method to disable depth clipping.
It's more important to have correct clipping than to have accurate depth values.
Inaccurate depth values can be fixed by slow depth.
2016-08-15 13:11:26 +02:00
Jules Blok
e9e81ece65
VideoBackends: Enable depth clamping.
2016-08-15 13:11:25 +02:00
Lioncash
14e0b48ae4
VideoCommon: Make API_TYPE an enum class
...
Allows for forward declarations in most places, which prevents dumping
unrelated VideoCommon.h contents directly into headers.
2016-07-29 19:20:16 -04:00
hthh
8be5717a60
Improve PerfQuery accuracy
...
In TimeSplitters: Future Perfect, PerfQuery is used to detect
the visibility of lights and draw coronas. 25 points are drawn
for each light. However, the returned count was incorrectly
being divided by four leading to dim coronas.
Using 4x antialiasing was a workaround because of a bug where
antialiasing multiplied the PerfQuery results. This commit
fixes that bug too (but only for OpenGL).
2016-07-04 18:54:49 +10:00
Chris Burgener
28a3691e70
Merge pull request #3930 from RisingFog/split_video_dump_resolution
...
Split Video Dumps on Resolution Change
2016-06-27 22:39:19 -04:00
Chris Burgener
f31adf9635
Fix D3D crashes/issues
2016-06-27 10:13:17 -04:00
Léo Lam
1b71249562
D3D: Fix crash on start with BBox enabled
...
Someone removed the BBox::Init(), causing crashes when BBox is enabled.
Fixes issue #9643 .
2016-06-27 12:45:00 +02:00
degasus
d79aeaa1e9
VideoCommon: Drop GetConfigName.
...
We're past 5.0 now, so there is no need to look for old inis.
2016-06-26 12:34:59 +02:00
degasus
5f2f462067
VideoBackends: Merge ShowConfig functions.
2016-06-26 12:34:59 +02:00
degasus
7833ff25df
VideoBackends: Merge Initialize and Shutdown functions.
2016-06-26 12:34:59 +02:00
Scott Mansell
2f134c5c36
Remove the rest of ShaderDebugging.
...
Without UID checking, it's basically a no-op that disables shader cache
and stores the shader source code (without ever reading it back).
2016-06-26 16:25:11 +12:00
Scott Mansell
ebe5fd0b36
Multithreadded Shadergen: Minor fixups.
2016-06-26 16:13:22 +12:00
Scott Mansell
95469ec225
Remove UID Checker.
...
Kind of pointless now that multiple shaders with the same UID are
now fundementally impossible.
2016-06-26 16:13:22 +12:00
Scott Mansell
24e5d21780
Multithreadded Shadergen: Second pass over Pixel Shadergen.
...
Note: It's not 100% perfect, as some of the GPU capablities leak into the
pixel shader UID.
Currently our UIDs don't get exported, so there is no issue. But someone
might want to fix this in the future.
2016-06-26 16:13:21 +12:00
Scott Mansell
1a831cfc7d
Multithreadded Shadergen: Second Pass over vertex/lighting Shadergens
...
As much as possible, the asserts have been moved out of the GetUID
function. But there are some places where asserts depend on variables
that aren't stored in the shader UID.
2016-06-26 16:13:21 +12:00
Scott Mansell
28c7113e41
Multithreadded Shadergen: Second Pass over geometery Shadergen
2016-06-26 16:13:21 +12:00
Pierre Bourdon
43d0d692f9
Fix D3D12 headers missing includes.
2016-06-24 11:14:10 +00:00
Pierre Bourdon
3570c7f03a
Reformat all the things. Have fun with merge conflicts.
2016-06-24 10:43:46 +02:00
Stenzek
ccf9470241
D3D12: Specify read/write ranges when calling Map/Unmap
2016-05-08 23:18:59 +10:00
Stenzek
fde7dee652
D3D12: Fix invalid CopyTextureRegion call in CopyRectangleFromTexture
...
This was occuring when the source texture was larger than the destination
texture, but the source rect was <= dest rect, so the copy is valid.
2016-05-08 23:18:58 +10:00
Stenzek
9bff187547
D3D12: Cleanup startup/shutdown process
...
Sorts out references that cause some modules to be kept around after
backend shutdown.
Should also solve the issue with errors being thrown due to the config
being loaded after device creation, leading to the incorrect device being
used in a multi-adapter system.
2016-05-08 23:18:58 +10:00
Stenzek
4269abdc3e
D3D12: Implement perf query support
2016-05-08 23:18:57 +10:00
Stenzek
25d5da0ea3
D3D12: Remove D3D11 header references
2016-05-08 23:18:56 +10:00
Stenzek
6f3573dda8
D3D12: Implement XFB encoding/decoding (support Real XFB)
2016-05-08 23:18:51 +10:00
Stenzek
3372bfa6ab
D3D12: Remove feature level checks
...
We don't create a device below feature level 11_0 anyway, so no point
checking, we can just assume support.
2016-05-08 12:08:25 +10:00
Stenzek
063761fbd2
D3D12: Don't add padding when allocating within empty StreamBuffer
...
Resources are already aligned to an address larger than any of our
requirements, anyway.
2016-05-08 12:08:25 +10:00
Stenzek
0c27aae7d3
D3D12: Improve output of shader compiler errors
...
These were completely broken due to lack of c_str(). We also output
warnings now as well (these can be useful).
2016-05-08 12:08:25 +10:00
Stenzek
acfa93372e
D3D12: Refactoring and cleanups
...
Moves render target restoring to RestoreAPIState, this also means no need
to manually restore after allocating in a buffer that caused execution,
because the manager restores it for us.
Remove a method that wasn't used from D3DUtil.cpp, and fixes a few errors
in EFB poke drawing.
2016-05-08 12:08:25 +10:00
Stenzek
7ec1fce741
D3D12: Fix error with >1xIR/MSAA EFB depth access
2016-05-08 12:08:25 +10:00
Stenzek
ac1cd8279b
D3D12: Implement GPU-based bounding box
2016-05-08 12:08:25 +10:00
Stenzek
32599559db
D3D12: Use helper method for binding EFB render targets
2016-05-08 12:08:25 +10:00
Stenzek
984da2d624
D3D12: Use signed ints for viewport origin
...
Fixes black screen when crop is enabled.
2016-05-08 12:08:25 +10:00
Stenzek
a8c4d6c242
D3D12: Allow large texture uploads (>64MiB) by using temporary buffer
...
This is not optimal, but for those texture packs with extremely large
images, it won't crash. Releasing after the frame completes is an option
too, however, there is the risk of running out of memory by doing this.
2016-05-08 12:08:25 +10:00
Pierre Bourdon
486d3a7114
Merge pull request #3656 from phire/windows-10-sdk-update
...
Updated D3D12 to build on the newer windows 10 sdk.
2016-03-30 18:37:53 +02:00
Scott Mansell
c036cf7a5f
Updated D3D12 to build on the newer windows 10 sdk.
2016-03-26 18:11:49 +13:00
EmptyChaos
0b9a72a62d
VideoCommon: Refactor TexMode0 mipmaps disabled test into a helper function
2016-03-24 13:43:29 +11:00
EmptyChaos
902e5cddf7
VideoBackends: Do not use Anisotropy on Point filtered textures.
...
The D3D backend was always forcing Anisotropic filtering when that is enabled regardless of how the game chose to configure the texture filtering registers; this causes the same issues as "Force Filtering" without Anisotropy, such as causing game UI elements to no longer line up adjacent correctly. Historically, OpenGL's Anisotropy support has always worked "better" than D3D's due to seeming to not have this problem; unfortunately, OpenGL's Anisotropy specification only gives GL_LINEAR based filtering modes defined behavior, with only the mipmap setting being required to be considered. Some OpenGL implementations were implicitly disabling Anisotropy when the min/mag filters were set to GL_NEAREST, but this behavior is not required by the spec so cannot be relied on.
2016-03-24 13:43:29 +11:00
mimimi085181
e4f984d5dd
Minor fixes to the partial updates code
...
- remove an outdated comment about the efb to ram and scaled efb restriction
- when upscaling efb copies, mark the new texture as efb copy
- dx12 fixes for the src box, especially the number of layers for 3D
2016-03-16 22:24:11 +01:00
Mathew Maidment
c2802f96a6
Merge pull request #3655 from jcowgill/spelling-fixes
...
Fix some very minor spelling mistakes
2016-03-02 14:04:05 -05:00
EmptyChaos
cc36dec9b5
D3D12: Cleanup DX12::Renderer::SetSamplerState
...
Remove uninitialized non-static variable. Replace test to avoid unnecessary state changes with a simpler one.
2016-03-01 23:55:19 +11:00
Stenzek
0a96e2f531
D3D11: Fix texture dumping, for both single and multi-mip textures
2016-02-28 17:24:47 +10:00
Stenzek
c793459b88
D3D12: Fixed issue where EFB copies could end up corrupted after reset
...
Also prevents previously-released textures from ending up in a descriptor
table.
2016-02-28 17:24:46 +10:00
Stenzek
74275bdfe3
D3D12: Don't keep screenshot/encoder buffers mapped
...
Readback heaps do not support persistent mapping. See D3D12 docs.
2016-02-28 17:24:09 +10:00
Stenzek
c4d79d6db3
D3D12: Add helper method for setting both viewport and scissor rect
...
Simplfies making changes, as well as keeping the two in sync.
2016-02-28 17:18:46 +10:00
Stenzek
13e143de38
D3D12: Optionally prevent StreamBuffer from executing command list
...
This applies to callers that do not have full knowledge of the command
list state, and thus, cannot restore it should allocations cause command
list execution. Instead we reallocate a new buffer. Should not happen
often enough for this to be a concern, as it's mainly for the utility
classes.
2016-02-28 17:18:46 +10:00
Stenzek
04257029e0
D3D12: Don't enumerate outputs, it's not used anywhere
...
The D3D12 backend does not support exclusive fullscreen.
2016-02-28 17:18:45 +10:00
Stenzek
9efe66509d
D3D12: Fix crash/errors when switching MSAA modes while running
2016-02-28 17:18:44 +10:00
Stenzek
1d909ec7a4
D3D12: Implement non-blocking EFB access when EFB has not been modified
2016-02-28 17:18:43 +10:00
Stenzek
6bbf836ea9
D3D12: Simplify and fix MSAA EFB depth copy path
2016-02-28 17:18:43 +10:00
Stenzek
649b94338e
D3D12: Cleanup/refactoring of teardown process
2016-02-28 17:18:42 +10:00
Stenzek
759b77474d
D3D12: Use std::thread for worker thread
...
Using CreateThread can create issues if any CRT calls are made, as
thread-specific data may not be initialized. Additionally, TerminateThread
is not a good idea for similar reasons, and may not free CRT resources.
2016-02-28 17:18:41 +10:00
Stenzek
ffe0e326d2
D3D12: Use stream buffer for CD3DFont
2016-02-28 17:18:40 +10:00
Stenzek
5c1a708977
D3D12: Clean up debug device creation path
2016-02-28 17:18:39 +10:00
Stenzek
efbb85da43
D3D12: Improve robustness of command allocator and fence tracking
2016-02-28 17:18:39 +10:00
Stenzek
2f7870b046
D3D12: Don't add fence tracking entries without buffer offset changes
2016-02-28 17:18:38 +10:00
Stenzek
31bc0cf2c3
D3D12: Don't clear texture SRV on destruction, as it may still be in use
2016-02-28 17:18:37 +10:00
James Cowgill
db8dbae131
Fix some very minor spelling mistakes
...
Found by Lintian https://lintian.debian.org/
2016-02-19 01:48:10 +00:00
Mathew Maidment
05e431d5b5
Merge pull request #3645 from lioncash/dxmem
...
D3D12: Get rid of most explicit delete and new usages
2016-02-16 22:54:04 -05:00
Mathew Maidment
96e48c3c9f
Merge pull request #3644 from lioncash/shadercache
...
ShaderCache: Minor changes
2016-02-16 22:52:39 -05:00
Lioncash
6b08194728
D3D12: Get rid of safe deletion macros
...
Anything these macros provided can be obsoleted by using
the correct standard library types.
2016-02-16 02:09:06 -05:00
Lioncash
626fcf4c15
D3DStreamBuffer: Use size_t within the class interface
...
A few StreamBuffer instances take arguments that are actually size_t,
and this will cause truncation warnings during argument forwarding
with make_unique.
2016-02-16 02:08:52 -05:00
Lioncash
932dd14418
NativeVertexFormat: Add missing override specifier
2016-02-15 23:41:20 -05:00
Lioncash
69c82f32ff
NativeVertexFormat: Use in-class initialization
2016-02-15 23:40:34 -05:00
Lioncash
6c0db9fe3c
ShaderCache: Remove unnecessary template type specifications
...
These are already inferred through the passed in arguments.
2016-02-15 23:32:30 -05:00
Lioncash
53fe5a04ec
ShaderCache: Remove unnecessary null checks
...
We already bail out if the shader compilation fails.
Also, there would have already been a nullptr dereference in
InsertByteCode prior to reaching this point.
2016-02-15 23:29:30 -05:00
Lioncash
a22f2e1144
D3DBase: Fix missing return statement
2016-02-15 21:15:43 -05:00
hdcmeta
8cc686b360
D3D12: Initial commit for D3D12 backend implementation.
2016-02-15 09:48:25 -08:00