Commit Graph

2145 Commits

Author SHA1 Message Date
6a272f22de Merge pull request #5478 from stenzek/vulkan-nvidia
Vulkan: Don't use vkCmdClearAttachments on NVIDIA with MSAA
2017-08-14 13:12:41 -07:00
a7bdd2ee1c Merge pull request #5868 from stenzek/d3d-require-new-compiler
D3DBase: Raise error if d3dcompiler_47.dll cannot be loaded
2017-08-14 09:55:31 -07:00
f090a94319 Remove non-integer IRs 2017-08-08 12:09:50 +02:00
745f92b4e5 TransformUnit: Get rid of pointer casting in TransformColor() where applicable
The casts to u32* are technically undefined behavior. The u8* cast is
left, as char/unsigned char is exempted from this rule to allow for
bvtewise inspection of objects (and this is what s8/u8 are typedefs of
on platforms we support).
2017-08-06 19:04:31 -04:00
4d35a3105e TransformUnit: Make LightColor()'s chan parameter const
Also marks references/pointers const where applicable
2017-08-06 18:15:05 -04:00
cc4b3b180b VideoSW: Drop log level of missing anti aliasing support.
We don't want to emit such a high priority warning here, else fifoci will die.
2017-08-05 19:20:19 +02:00
6d91c1b079 ProgramShaderCache: Call glTexImage3D after glTexParameter
Was missed before merge.
2017-08-05 18:18:30 +10:00
3c5112bb21 Merge pull request #5856 from stenzek/optimus-crash
Fix ubershader crashes with primus/bumblebee
2017-08-05 00:54:28 -07:00
c3a57bbad5 Video: Clearly separate Texture and EFB Copy formats
Improve bookkeeping around formats. Hopefully make code less confusing.

- Rename TlutFormat -> TLUTFormat to follow conventions.
- Use enum classes to prevent using a Texture format where an EFB Copy format
  is expected or vice-versa.
- Use common EFBCopyFormat names regardless of depth and YUV configurations.
2017-08-03 18:35:29 -07:00
7f88711186 Vulkan: Add a driver bug for NV when MSAA is enabled
This causes the card to lock up when vkCmdClearAttachments is called,
when multisampling is enabled. Seems to be restricted to Maxwell and
newer?
2017-08-03 17:40:15 +10:00
fee08cf63d Vulkan: Use optimal tiling for dummy texture
Fixes a crash on some NVIDIA drivers. Apparently calling
vkCmdClearColorImage on an image with linear tiling causes the
GPU/driver to lock up.
2017-08-02 21:33:10 +10:00
67997529b8 ProgramShaderCache: Create a FBO for shared contexts to draw into
This way it allows us to use surfaceless contexts in EGL/GLX. It also
ensures that the shared context shares a similar setup to the main
context's framebuffer, potentially reducing the number of variants a
driver needs to generate.
2017-08-02 20:12:28 +10:00
57f34d748b D3DBase: Raise error if d3dcompiler_47.dll cannot be loaded
Previously we were falling back to an earlier version of the compiler.
The older version cannot compile our ubershaders without various
graphical issues.
2017-08-02 19:54:55 +10:00
fe65b26d53 Merge pull request #5834 from stenzek/bc7
Support loading BC7 (BPTC) textures from DDS files
2017-08-01 12:39:19 +10:00
63305e9173 HiresTextures: Support loading BC7 (BPTC) from DDS files 2017-08-01 11:59:38 +10:00
d62dcd397d VideoConfig: Drop force vertex/pixel ubershader settings
This was mainly included for debugging, but could end up being confusing
for users, as well as polluting the GL program cache with a mix of uber
and specialized shaders if the option was changed.
2017-07-31 23:21:38 +10:00
f6c21e002b General: Remove unnecessary semicolons 2017-07-30 16:39:53 -04:00
e968c191ff Ubershaders: Support per-pixel lighting 2017-07-30 17:43:59 +10:00
c8f31656cb VideoBackends: Support a different number of threads for precompiling
At runtime, we only really want a single shader compiler thread.
However, for initial boots, we can use a higher number to speed things
up.
2017-07-30 17:43:59 +10:00
e17efb1d8d ShaderGen: Use consistent variable names for texture coordinates 2017-07-30 17:43:59 +10:00
25338c53e0 NativeVertexFormat: Drop unused virtual method SetupVertexPointers 2017-07-30 17:43:59 +10:00
33f6668544 Vulkan: Multithreaded creation of UID pipeline caches
Should give a decent speedup to boot time.
2017-07-30 17:43:59 +10:00
81b4ed2a81 Vulkan: Uber shader support 2017-07-30 17:43:59 +10:00
4bf5625895 D3D: Uber shader support 2017-07-30 17:43:59 +10:00
cd502990fa OGL: Uber shader support 2017-07-30 17:43:59 +10:00
7d78cf0f6f ShaderGen: Implement pixel ubershaders 2017-07-30 17:43:59 +10:00
f48ef65bec XFMemory: Convert several registers to bitfields 2017-07-30 17:43:59 +10:00
479abde9f4 BPMemory: Convert a number of unions to BitFields 2017-07-30 17:43:59 +10:00
357c55442f Vulkan: Clear decoding texture before usage
Fixes a validation layer warning.
2017-07-30 12:38:50 +10:00
aff44684a4 Vulkan: Move shader/pipeline-related methods to ShaderCache 2017-07-30 12:38:49 +10:00
d23fd17e1a Vulkan: Use VK_NV_glsl extension where available, and skip glslang
Seems to produce faster ubershaders, at least.
2017-07-30 12:38:49 +10:00
3ea9d86faa ShaderGen: Pass host config to shader generation functions
Also moves the host config checks to common.
2017-07-20 17:54:33 +10:00
d01b0bf60f VideoCommon: Move shader cache filename generation to common 2017-07-20 17:46:59 +10:00
7c5bbafdd1 Vulkan: Don't save/load pipeline UID cache when shader cache is disabled 2017-07-20 17:46:59 +10:00
b380f292b4 Vulkan: Reload pipeline cache when relevant host config changes 2017-07-20 17:46:59 +10:00
a8343cc19a Vulkan: Don't save pipeline cache if shader cache is disabled
We still create a pipeline cache object, since that speeds up driver's
creation of pipelines at runtime. However, we should not save it.
2017-07-20 17:46:59 +10:00
d9a3b29a07 Vulkan: Emit input/output locations for EFB poke geometry shader 2017-07-20 17:46:59 +10:00
228ddb8aba D3D11: Reload shader cache when relevant config changes 2017-07-20 17:46:59 +10:00
62a901508b OGL: Reload shader cache when relevant video config changes 2017-07-20 17:46:59 +10:00
3fc9a48da0 D3DBase: Use the swapchain discard mode when possible. 2017-07-10 14:25:28 +02:00
65495a1297 D3D: Resize the swapchain when the fullscreen state is changed 2017-07-10 14:24:11 +02:00
07c5dcd739 D3DBase: Set the fullscreen state in Create() 2017-07-10 14:03:04 +02:00
0f13c61daa D3DBase: Only create a stereo swapchain when needed. 2017-07-10 01:24:43 +02:00
77a318789a D3DBase: Implement Windows 7 swapchain fallback. 2017-07-10 01:02:29 +02:00
938939136e D3DBase: Only use temporary mono when supported by the swapchain. 2017-07-10 01:02:05 +02:00
b485329353 D3DBase: Set the monoscopic flag when we don't use stereoscopy. 2017-07-05 22:43:39 +02:00
1f2d43c870 Vulkan: Implement Quad-Buffered stereoscopy support. 2017-07-05 22:43:39 +02:00
f3508742ac OGL: Support Quad-Buffered stereoscopy. 2017-07-05 22:43:39 +02:00
2ab068d3f2 D3DBase: Always create a stereo swapchain. 2017-07-05 22:43:39 +02:00
179602e921 D3D: Add quad-buffer stereoscopy support. 2017-07-05 22:43:39 +02:00