Commit Graph

2335 Commits

Author SHA1 Message Date
Triang3l 43866092a5 [D3D12] Update some comments about numeric formats 2018-12-28 14:12:09 +03:00
Triang3l f3e3bbc4fa Revert "[D3D12] ROV: Round unorm/snorm to nearest rather than nearest even"
This reverts commit 216998eb56.
2018-12-28 14:05:13 +03:00
Triang3l 216998eb56 [D3D12] ROV: Round unorm/snorm to nearest rather than nearest even 2018-12-28 08:25:41 +03:00
Triang3l 5860a8fdc6 [D3D12] DXBC: Add a missing STAT increment to memexport 2018-12-28 08:13:35 +03:00
Triang3l ed09cac440 [D3D12] DXBC: vfetch RoundIndex, vertex index signedness fixes 2018-12-28 08:11:34 +03:00
Triang3l ec7667ce1b [D3D12] Broken memexport shader code 2018-12-27 20:43:17 +03:00
Triang3l bd9aae016f [D3D12] DXBC: eA and eM registers 2018-12-22 19:51:12 +03:00
Triang3l e803ee84d5 [D3D12] Bind shared memory as UAV with memexport 2018-12-22 15:39:47 +03:00
Triang3l 645f450321 [D3D12] DXBC: Fix UAV and sampler operands 2018-12-22 14:26:18 +03:00
Triang3l 6025599d3b [D3D12] Request memory for memexport in shared memory 2018-12-22 00:57:31 +03:00
Triang3l 0aeff797e5 [D3D12] DXBC: Allocate multiple registers with PushSystemTemp 2018-12-21 22:54:26 +03:00
Triang3l 72e9ac5c28 [GPU] Shader translator: More memexport validation 2018-12-21 22:24:09 +03:00
Triang3l 73baaa8e89 [GPU] Gather eA/eM# writes in shader translator 2018-12-21 10:06:41 +03:00
Triang3l 090bf8e353 [D3D12] Change RT in the title to something less ambiguous and more googlable 2018-12-20 20:48:15 +03:00
Triang3l adc0eb87f6 [GPU] Gather used memexport constants in shader translator 2018-12-20 10:14:18 +03:00
Triang3l dc0b468ea8 Merge branch 'master' into d3d12 2018-12-19 22:51:26 +03:00
Triang3l 486a5725e3 [GPU] xenos.h: tessellation, memexport constant 2018-12-19 22:50:43 +03:00
Triang3l c84511a5f1 [GPU/D3D12] Update tessellation enums 2018-12-19 18:23:54 +03:00
Triang3l cbba86fcf0 [D3D12] Split DXBC shader translator into multiple files 2018-12-19 14:24:16 +03:00
Triang3l 2de0e26606 [D3D12] DXBC: Remove ugly useless indexable temp fallback 2018-12-16 13:03:03 +03:00
Triang3l 574f85cc15 [D3D12] Refactoring: DXBC -> Dxbc 2018-12-14 13:25:07 +03:00
Triang3l 952819ed87 [D3D12] Don't 4KB-align sizes of resolve destinations 2018-12-13 15:22:16 +03:00
Triang3l 2b55ec86ea [GPU] Shader Compiler: Expose domain shader output 2018-12-13 14:52:50 +03:00
Triang3l 2b646ff425 [D3D12] Fake per-edge tessellation with continuous 2018-12-12 22:12:32 +03:00
Triang3l 7698944673 [D3D12] Swap red and blue in 8bpp gamma ramp 2018-12-09 15:53:57 +03:00
Triang3l 1ee3ed03fd [D3D12] DXBC: Skip loading and some ALU ops for identical operands 2018-12-09 00:20:13 +03:00
Triang3l 352a443c67 [D3D12] DXBC: Small cleanup of something ugly in subs_prev 2018-12-08 19:18:56 +03:00
Triang3l e1f0e9c84a [D3D12] DXBC: Slightly shorten SM3 mul behavior emulation 2018-12-08 16:42:30 +03:00
Triang3l 9427667a27 [D3D12] Experimental 2x resolution scale 2018-12-06 10:38:13 +03:00
Triang3l 132af3e266 [D3D12] DXBC: Don't skip invariant driver optimizations 2018-12-04 12:29:27 +03:00
Triang3l bb53d722f9 [D3D12] Don't use switch in shaders on Intel, log GPU name 2018-12-03 16:31:49 +03:00
Triang3l 5b9e4b5886 Merge branch 'master' into d3d12 2018-11-27 11:05:14 +03:00
Triang3l f634e94227 [D3D12] ROV: Don't mark Z of PS SV_Position as used in dcl 2018-11-26 20:53:34 +03:00
gibbed 2398b1b8f4 [Vulkan] Use epsilon equality for checking rectangle list form. 2018-11-26 11:51:02 -06:00
gibbed af206addd1 Optimize SPIRV code generated via genspirv command. 2018-11-26 11:49:36 -06:00
Triang3l 355d33dadd [D3D12] Rename feature gflags 2018-11-25 23:25:56 +03:00
Triang3l 9a58841219 [D3D12] ROV: Use MSAA instead of SSAA 2018-11-25 16:37:38 +03:00
Triang3l 5c1efe7b9a Merge branch 'master' into d3d12 2018-11-24 16:26:27 +03:00
gibbed d87ae26895 [CI] Fix mspack linking even more. 2018-11-23 17:58:38 -06:00
Triang3l da280347c4 Merge branch 'master' into d3d12 2018-11-22 21:01:05 +03:00
Margen67 896ac4a682 Update documentation.
- Convert http to https, provide archive link when possible.
- Made CPU-JIT.png more readable on dark themes;
Added a white background so there isn't black text on a black
background.
2018-11-22 09:20:09 -06:00
gibbed 1ba5dd5eb1 Use platform-specific user directory to store content. Create a file named portable.txt next to xenia.exe to restore previous behavior. 2018-11-21 18:07:45 -06:00
Triang3l 14b623465c [D3D12] ROV: ForcedSampleCount=1 for safety 2018-11-21 20:53:11 +03:00
Triang3l 70fae20072 [D3D12] Apply scissor to resolve regions 2018-11-21 17:15:09 +03:00
Triang3l c061836649 [D3D12] Enable ROV by default 2018-11-20 21:30:36 +03:00
Triang3l b0b1e684f7 [D3D12] Fix UAV binding in EDRAM clear root signature 2018-11-20 21:29:04 +03:00
Triang3l d35be635d6 Merge branch 'master' of github.com:xenia-project/xenia into d3d12 2018-11-18 22:21:32 +03:00
Triang3l 7fa453c813 [GPU] Fix 1-component ALU instruction swizzle (hopefully) 2018-11-18 22:20:43 +03:00
Triang3l 66a37c0cc3 [D3D12] ROV: Aliasing and bounds checking, retc instead of discard 2018-11-17 17:15:15 +03:00
Triang3l 6901c3ea17 [D3D12] DXBC: Fix operands in scalar multiplication zero check 2018-11-16 19:25:24 +03:00
Triang3l e46244a996 [D3D12] Put shared memory in PS resource state because vfetch seems allowed in PS 2018-11-16 13:12:51 +03:00
Triang3l 38f421e89f [D3D12] GPUTEXTUREFORMAT_6_5_5 as RBG 2018-11-16 12:56:19 +03:00
Triang3l e1d771ab9c [D3D12] GPUTEXTUREFORMAT_11_11_10 support 2018-11-14 17:02:19 +03:00
Triang3l 5e51306660 [D3D12] Integer texture comment and UpdateSystemConstantValues cleanup 2018-11-14 16:45:31 +03:00
Triang3l 8ff03bcfa0 [D3D12] Allow different loading modes for unsigned and signed textures 2018-11-14 13:52:16 +03:00
Triang3l b4706054d0 [D3D12] U11V11W10 texture loading shader 2018-11-13 22:00:10 +03:00
Triang3l 4ad1c2c538 [D3D12] R11G11B10 unorm textures 2018-11-13 19:00:01 +03:00
Triang3l ae48b3ffa8 [D3D12] Disable placed resources for RTV/DSV because of Nvidia 2018-11-10 22:45:55 +03:00
Triang3l 6a8a080703 [D3D12] DXBC: Source map comment output 2018-11-10 19:01:05 +03:00
Triang3l 3b57c82fe4 [D3D12] ROV: Don't use the D24FS8-specific clear shader with ROV 2018-11-03 20:55:50 +03:00
Triang3l 7935bcf49f [D3D12] Fix resolving of non-top-left sample 2018-11-02 20:21:33 +03:00
Triang3l 3af93e547a [D3D12] Fix triangle fan winding order 2018-11-02 09:57:35 +03:00
Triang3l 5a79f675bd [D3D12] ROV: Unbind resolve RT after using 2018-11-01 22:13:45 +03:00
Triang3l fd12302108 [D3D12] DXBC: Fix setp_inv output when the predicate is set 2018-10-31 16:18:19 +03:00
Triang3l de141e0ee3 [D3D12] DXBC: Rewrite conditional execution 2018-10-30 21:31:59 +03:00
Triang3l 251f078baf [D3D12] Fix mipmapped cubemaps and stacked textures 2018-10-29 22:40:29 +03:00
Triang3l e39bb04875 [D3D12] ROV: Fix min/max blending operation 2018-10-29 10:24:49 +03:00
Triang3l 83c99bc811 [D3D12] Fix resolve region handling 2018-10-28 14:36:41 +03:00
Triang3l 1d45a4f67e [D3D12] Round to nearest when converting to fixed-point 2018-10-26 22:04:11 +03:00
Triang3l f4844207ad [D3D12] Mark 8_8_8_8_GAMMA_EDRAM as non-texture in the texture format list 2018-10-25 09:45:10 +03:00
Triang3l fb5030171e [D3D12] RGBA32F resolve 2018-10-25 09:32:19 +03:00
Triang3l 64d5574023 [D3D12] Don't apply the epsilon offset to cubemap face 2018-10-24 17:30:28 +03:00
Triang3l cabffea4d7 [D3D12] Write pixel, not sample, position to ps_param_gen 2018-10-24 17:08:15 +03:00
Triang3l e68a0c37b9 [D3D12] Add epsilon to texture coordinates to resolve tie in nearest-neighbor filtering 2018-10-24 16:35:00 +03:00
Triang3l aef0675c31 [GPU] Don't ignore vector instructions with side effects when they write to nowhere 2018-10-23 22:46:03 +03:00
Triang3l 43f34d804a [D3D12] Load D3D dynamically 2018-10-23 19:21:01 +03:00
Triang3l b81bb4d68c [D3D12] Code cleanup 2018-10-23 16:42:53 +03:00
Triang3l 31e0581304 [D3D12] Indexed line loops 2018-10-23 13:36:03 +03:00
Triang3l 096d78a2f9 [D3D12] Expose ROV toggle in xenia-gpu-shader-compiler 2018-10-23 11:04:36 +03:00
Triang3l f78c48d6f9 [D3D12] Triangle fans with primitive restart 2018-10-23 08:14:41 +03:00
Triang3l fb12ee72cb [D3D12] Compilation fixes related to 8_8_8_8_GAMMA_EDRAM texture format 2018-10-22 23:30:11 +03:00
Triang3l 2b03a9e095 [GPU] Synchronize GPU frontend with the D3D12 branch 2018-10-22 23:28:52 +03:00
Triang3l abdb37464d
Merge branch 'master' into d3d12 2018-10-22 23:15:07 +03:00
Triang3l 729406dee2 [D3D12] ROV: Blend in linear color space 2018-10-22 15:54:41 +03:00
Triang3l 6b09c02c42 [D3D12] ROV: Alpha saturate blending factor 2018-10-22 07:45:59 +03:00
Triang3l f8d3e0c82f [D3D12] ROV: Small stencil-related cleanup 2018-10-21 22:14:48 +03:00
Triang3l b183b13868 [D3D12] ROV: Fix 7e3 alpha converted twice 2018-10-21 15:33:51 +03:00
Triang3l 8cfff36ec1 [D3D12] ROV: UAV barrier in Resolve 2018-10-21 14:53:29 +03:00
Triang3l b6006dc4b2 [D3D12] ROV: Fix 32-bit storing 2018-10-21 14:16:23 +03:00
Triang3l 24bf39e942 [D3D12] ROV: Don't clamp during blending for floats 2018-10-21 13:44:35 +03:00
Triang3l eb185ab64c [D3D12] ROV: Clamp float16 to 65504 to prevent Infinity 2018-10-20 21:50:57 +03:00
Triang3l 24ebe6b1a7 [D3D12] ROV: Non-IEEE multiplication in blending 2018-10-20 17:58:02 +03:00
Triang3l 1d97fe7d53 [D3D12] ROV: Declare SV_IsFrontFace in the depth-only shader 2018-10-19 12:30:09 +03:00
Triang3l 18ef1248f9 [D3D12] ROV: Use front face stencil for back face when needed 2018-10-19 11:55:01 +03:00
Triang3l c1e78f6953 [D3D12] ROV: Broken stencil test 2018-10-19 11:33:50 +03:00
Triang3l ea2864d21e [D3D12] ROV: Stencil constant declarations 2018-10-18 23:02:25 +03:00
Triang3l d214c62c78 [D3D12] ROV: Fix write mask source 2018-10-18 20:59:24 +03:00
Triang3l f48ea20880 [D3D12] ROV: Track which RTs and components have been actually written 2018-10-18 14:54:33 +03:00
Triang3l 1860bc6a59 [D3D12] Display whether ROV is actually used in the title 2018-10-17 17:53:37 +03:00
Triang3l f5a90faeab [D3D12] ROV: Separate depth and stencil discard/writing 2018-10-17 16:22:24 +03:00
Triang3l 1c6d753e55 [D3D12] ROV: Depth test refactoring 2018-10-17 15:23:58 +03:00
Triang3l 6c0ffe881a [D3D12] ROV: Min/max blend operations 2018-10-17 13:04:03 +03:00
Triang3l 17a737a358 [D3D12] Display ROV support in the window title 2018-10-16 21:19:45 +03:00
Triang3l 37fe120fe0 [D3D12] ROV: Write mask, write in ascending RT number order 2018-10-16 20:50:01 +03:00
Triang3l e8414da5dd [D3D12] ROV: Fix depth format system constant setting 2018-10-16 18:08:18 +03:00
Triang3l 5f2c4500d6 [D3D12] ROV: Clamp values participating in blending 2018-10-16 15:02:08 +03:00
Triang3l 2d56c9ae30 [D3D12] ROV: Empty pixel shader for depth-only drawing 2018-10-16 14:02:43 +03:00
Triang3l 6e9964b43e [D3D12] ROV: Fix depth testing 2018-10-15 23:16:34 +03:00
Triang3l e455467c32 [D3D12] ROV: Non-working depth testing code 2018-10-15 22:13:06 +03:00
Triang3l fa968a9ecd [D3D12] ROV: Fix 7e3 denormal read 2018-10-14 16:05:11 +03:00
Triang3l 5395183d98 [D3D12] ROV: 64bpp load/store 2018-10-14 14:38:04 +03:00
Triang3l eb8596d72a [D3D12] ROV: Cleanup format system constants 2018-10-14 12:04:39 +03:00
Triang3l 518535bbd3 [D3D12] ROV 7e3 reading 2018-10-13 20:19:42 +03:00
Triang3l 148a713280 [D3D12] ROV 7e3 writing 2018-10-13 19:10:25 +03:00
Triang3l c8a48f9c1c [D3D12] ROV: Blending fixes 2018-10-13 17:44:04 +03:00
Triang3l efc7f794ed [D3D12] DXBC: Fix position/color use after free, fix ROV color load/store 2018-10-13 15:38:49 +03:00
Triang3l f98a4d11ea [D3D12] ROV: A bit of non-working blending code 2018-10-13 14:33:22 +03:00
Triang3l 60c7f11fe0 [D3D12] Blend constant values 2018-10-12 23:56:49 +03:00
Triang3l 5f108246b6 [D3D12] ROV: Blending constant declaration 2018-10-12 22:28:07 +03:00
Triang3l 10a3dc6d94 [D3D12] ROV: 32-bit loading, except for 7e3 2018-10-12 20:07:00 +03:00
Triang3l 3dc15dbb44 [D3D12] ROV: 32bpp storing (except for 7e3) 2018-10-12 09:59:31 +03:00
Triang3l 615fade64e
[D3D12] ROV: Fix EDRAM pitch shader constant size 2018-10-11 19:59:35 +03:00
Triang3l 197b1d8114 [D3D12] ROV: EDRAM offset calculation 2018-10-11 10:16:36 +03:00
Triang3l 8cde541596 [D3D12] ROV: Binding 2018-10-10 18:33:39 +03:00
Triang3l 67e5cb8681 [D3D12] ROV: Disable RTs when using ROV 2018-10-10 16:37:35 +03:00
Triang3l 6d2e74325c [D3D12] ROV: Check if supported 2018-10-10 14:30:29 +03:00
Triang3l 90f700c785 [D3D12] Analysis: Display fetch constant contents if type is wrong 2018-10-10 12:44:02 +03:00
Triang3l 7bc79cbd01 [D3D12] Signed texture SRVs 2018-10-09 21:44:18 +03:00
Triang3l 7603de218b [D3D12] DXBC part of signed textures 2018-10-09 08:31:09 +03:00
Triang3l 6a6e63060b [D3D12] Submit barriers before uploading gamma ramp 2018-10-08 19:42:02 +03:00
Triang3l fccebae703 [D3D12] PIX: Capture with F4, disable tiled resources when attached 2018-10-08 12:05:15 +03:00
Triang3l 16dc6e4100 [D3D12] DXBC: In getWeights, apply the offset for unnormalized coordinates only when needed 2018-10-07 21:51:18 +03:00
Triang3l 685d3074f4 [D3D12] Hash sampler bindings and refactor names in UpdateBindings 2018-10-07 20:21:18 +03:00
Triang3l 3de2b5e692 [D3D12] Code style fixes 2018-10-07 17:30:12 +03:00
Triang3l 400e6b7137 [D3D12] Don't replace strip reset index when not used, profile ConvertPrimitives 2018-10-07 15:26:47 +03:00
Triang3l 9194c3f8b0 [D3D12] Primitive converter cache and strip restart, texture invalidation acquire/release 2018-10-06 20:27:48 +03:00
Triang3l 128ac2a3f9 [D3D12] Align mipmap storage size to power of 2 when untiling 2018-10-05 20:48:11 +03:00
Triang3l 34946c57b0 [D3D12] Rename XeTextureCopy to XeTextureLoad in shaders 2018-10-05 20:02:36 +03:00
Triang3l 9dc7dfab02 [D3D12] Fix currently bound textures not reloaded if not needed immediately 2018-10-05 09:20:51 +03:00
Triang3l d827bbeb6c [D3D12] Fix texture binding hashing 2018-10-04 23:57:08 +03:00
Triang3l 131525e44d [D3D12] Don't create SRVs if textures not changed 2018-10-04 14:36:48 +03:00
Triang3l b77ffe3df6 [D3D12] Output gamma ramp 2018-10-03 14:36:17 +03:00
Triang3l c624bf8c49 [D3D12] DXBC: Use a0 for maxas scratch because ps must not be modified without a write mask 2018-10-02 21:24:50 +03:00
Triang3l 90f586383a [D3D12] Make tiled resources optional - not available on old Intel HD Graphics 2018-10-02 17:36:10 +03:00
Triang3l 9e17bbf016 [D3D12] Refactor system and bool/loop constants into separate descriptor ranges 2018-10-02 16:34:22 +03:00
Triang3l 2588aab89d [GPU/D3D12] Float constant remapping fixes 2018-10-01 20:15:00 +03:00
Triang3l c4599ff211 [D3D12] Compact float constants and don't split them into pages 2018-09-30 20:17:26 +03:00
Triang3l eb50ebd885 [D3D12] Write to 8_8_8_8_GAMMA in gamma space 2018-09-29 13:30:05 +03:00
Triang3l 64209748e3 [D3D12] Better polygon offset scale 2018-09-29 12:01:09 +03:00
Triang3l 400747bf7c [D3D12] Point sprite size 2018-09-29 11:25:03 +03:00
Triang3l d9538e6cc2 [D3D12] Log unsupported texture formats and don't log texture invalidation 2018-09-27 10:27:55 +03:00
Triang3l ea7d9e9060 [D3D12] Emulate reversed Z in shaders because it's unsupported on Nvidia 2018-09-26 20:46:24 +03:00
Triang3l 55f96c0f83 [D3D12] DXBC: Apply exp bias after alpha test 2018-09-26 16:20:04 +03:00
Triang3l 70103804c3 [D3D12] 8/16bpp resolves, fixed16 RT exp bias, RT format documentation 2018-09-26 16:10:23 +03:00
Triang3l 6e36101b42 [D3D12] Experimental write watch implementation for shared memory 2018-09-24 23:18:16 +03:00
Triang3l 005e590c92 [D3D12] SHM upload range cleanup and mask index buffer address 2018-09-23 18:37:41 +03:00
Triang3l ecfa70284e [D3D12] Treat gamma/as_16 EDRAM formats the same as their base formats 2018-09-22 19:22:57 +03:00
Triang3l 133604f249 [D3D12] Decompress textures if their size is not 4x4-aligned 2018-09-22 19:03:25 +03:00
Triang3l bb24521c2b [D3D12] DXT5 decompression shader (not used yet) 2018-09-22 15:52:07 +03:00
Triang3l 4d1b3caf8c [D3D12] DXBC: Fix max4 instruction length 2018-09-22 13:36:04 +03:00
Triang3l 6e3cf5dd22 [D3D12] Cleanup selection in shaders and add some DXT5 alpha code 2018-09-21 21:22:33 +03:00
Triang3l 17e3f09c1e [D3D12] DXT1 decompression shader 2018-09-21 08:55:55 +03:00
Triang3l 1f248572ac [D3D12] Better explanation of dxbc_switch 2018-09-19 23:26:45 +03:00
Triang3l 9daea21edc [D3D12] Don't use _COLOR blend modes for alpha 2018-09-19 22:54:35 +03:00
Triang3l cbd36218bf [D3D12] DXBC: Use switch instead of if for flow control (experimentally) 2018-09-19 21:25:58 +03:00
Triang3l 4db3a927ad [D3D12] Remove ID3DBlob from D3D12Shader 2018-09-19 17:08:48 +03:00
Triang3l ed66694319 [D3D12] Slightly better logging 2018-09-19 16:50:13 +03:00
Triang3l fdd536f572 [D3D12] Swap columns 0:39 and 40:79 of depth buffers in EDRAM 2018-09-19 11:40:28 +03:00
Triang3l 377b2da2d5 [D3D12] DXBC: Use eq, not lt, to check for zero operands in mul 2018-09-18 21:44:39 +03:00
Triang3l 7b450e9cec [D3D12] DXBC: SM3 zero handling in all multiplication instructions 2018-09-18 17:00:52 +03:00
Triang3l 836b4eef27 [D3D12] DXBC: Handle zeros in dot product and add missing instruction count increments 2018-09-18 15:27:34 +03:00
Triang3l 41d461d3a5 [D3D12] DXBC: Zero operand handling in vector mul and mad 2018-09-18 12:37:47 +03:00
Triang3l a27740a41f [D3D12] Set binding texture to null if the key is not valid 2018-09-17 08:08:45 +03:00
Triang3l 34fef0911c [GPU] Fix dynamic GPR addressing check 2018-09-17 07:35:56 +03:00
Triang3l 79b745527c [D3D12] Fix pipeline creation being stuck due to primitive topology type not being saved 2018-09-16 21:48:23 +03:00
Triang3l be2d522e19 [D3D12] Rename shaders/bin to shaders/dxbc because of .gitignore 2018-09-16 20:35:10 +03:00
Triang3l ae3d0bbb57 [D3D12] Clear both color and depth in resolves 2018-09-16 19:49:01 +03:00
Triang3l f8506d6b62 [D3D12] Use ByteSwap64 in 64bpp raw resolve 2018-09-16 18:54:59 +03:00
Triang3l 5997ec6668 [D3D12] 64bpp resolve and clear - GTA IV ingame 2018-09-16 17:14:21 +03:00
Triang3l 5f0df6d1fa [D3D12] Pipeline debug name, DXBC norm16 vertex fix 2018-09-16 15:57:22 +03:00
Triang3l c9ffe98d21 [D3D12] 64bpp raw resolve and EDRAM refactoring 2018-09-16 15:11:11 +03:00
Triang3l 5be78ab369 [D3D12] Non-indexed triangle fans and resource creation refactoring 2018-09-15 23:41:16 +03:00
Triang3l d1f185c744 [D3D12] Triangle fan conversion (untested, only indexed and without cache) 2018-09-15 15:11:03 +03:00
Triang3l a6304cd9fe [D3D12] Fix 7e3 and 20e4 conversion negative value handling 2018-09-13 20:03:05 +03:00
Triang3l 9a9665e4b8 [D3D12] Add DXBC to xenia-gpu-shader-compiler 2018-09-13 18:33:43 +03:00
Triang3l bd6b3c3e30 [D3D12] Remove the HLSL shader translator 2018-09-13 18:17:40 +03:00
Triang3l eed673eef4 [D3D12] DXBC: Fix VPOS SSAA inverse scale constant register 2018-09-13 18:01:42 +03:00
Triang3l 3194ad5938 [D3D12] DXBC: Format getGradients code 2018-09-13 18:00:56 +03:00
Triang3l d82fb7d9e6 [D3D12] DXBC getGradients and maxa clamp notes 2018-09-13 14:43:07 +03:00
Triang3l 8587438f70 [D3D12] DXBC: Fix anisotropic filtering sampler name suffix 2018-09-13 13:26:01 +03:00
Triang3l f882743d7f [D3D12] DXBC ps_param_gen 2018-09-13 10:26:17 +03:00
Triang3l cfef083271 [D3D12] DXBC: Shorten texture degamma 2018-09-13 09:38:14 +03:00
Triang3l 461fd3f693 [D3D12] DXBC texture sign bias, gamma and exponent bias 2018-09-12 23:34:58 +03:00
Triang3l 099de4487b [D3D12] DXBC vertex W format 2018-09-12 21:39:13 +03:00
Triang3l 283461be6c [D3D12] DXBC alpha test 2018-09-12 21:02:22 +03:00
Triang3l 9f7496ac23 [D3D12] DXBC RDEF, operand swizzle and cubemap orientation fix 2018-09-12 19:54:24 +03:00
Triang3l 4651a0b5ed [D3D12] DXBC: (Currently incorrect) cube undoing 2018-09-12 16:49:23 +03:00
Triang3l 15e0501a49 [D3D12] DXBC binding fixes 2018-09-11 23:15:32 +03:00
Triang3l 2a98d29eda [D3D12] DXBC: Most of tfetch 2018-09-11 22:57:08 +03:00
Triang3l d67b6f7a3e [D3D12] DXBC texture size, offset, unnormalized coordinates 2018-09-11 14:47:39 +03:00
Triang3l d4334312f3 [D3D12] DXBC samplers 2018-09-11 12:37:47 +03:00
Triang3l 06fabd16ad [D3D12] DXBC control flow 2018-09-10 23:30:53 +03:00
Triang3l d5d3f336f5 [D3D12] DXBC loop start and exece 2018-09-10 22:38:15 +03:00
Triang3l 20e607a35c [D3D12] DXBC exec and predicate 2018-09-10 21:35:12 +03:00
Triang3l b0fdab1754 [D3D12] DXBC: Format if instruction 2018-09-10 18:32:03 +03:00
Triang3l f4b83cb670 [D3D12] DXBC main loop and labels 2018-09-10 13:20:35 +03:00
Triang3l 4268466383 [D3D12] DXBC texture bindings (but no samplers and fetch) 2018-09-09 23:33:08 +03:00
Triang3l 091d51f841 [D3D12] DXBC: Unload vfetch index operand 2018-09-09 19:04:03 +03:00
Triang3l a6da33e463 [D3D12] DXBC cube instruction 2018-09-09 18:38:58 +03:00
Triang3l 3b7d6bfdcb [D3D12] Format DXBC and HLSL shader translator code 2018-09-09 14:12:40 +03:00
Triang3l 01bbba32cb [D3D12] DXBC muls_prev2 2018-09-09 00:16:04 +03:00
Triang3l 0a79a36cfa [D3D12] DXBC logc and reciprocals 2018-09-08 23:06:00 +03:00
Triang3l a6936ab4ce [D3D12] DXBC clip space scale/offset 2018-09-08 21:48:00 +03:00
Triang3l 3a86d78c18 [D3D12] DXBC: Re-enable indexable temps because they are okay on Nvidia 2018-09-08 21:14:02 +03:00
Triang3l b56ff6e325 [D3D12] DXBC: Use the same code for dp4/dp3 as add/mul/max/min 2018-09-08 20:16:00 +03:00
Triang3l b91866fa49 [D3D12] DXBC: Use movc instead of indexable temps by default because of Nvidia hang 2018-09-08 15:11:25 +03:00
Justin Moore 91c53f975e
Merge pull request #1209 from Triang3l/all_format_info
[GPU] Add info about unknown texture formats
2018-09-07 17:08:07 -05:00
Triang3l 0165136f69 [D3D12] DXBC: Partial revert of x# changes because literals can be written to them 2018-09-07 23:02:34 +03:00
Triang3l bc9b95ac57 [D3D12] DXBC: Fix indexable temp usage 2018-09-07 22:04:57 +03:00
Triang3l 04544945d0 [D3D12] DXBC: Fix vector write mask usage 2018-09-07 20:27:08 +03:00
Triang3l 8ecedbb20a [D3D12] DXBC: Vfetch exponent bias 2018-09-07 09:17:36 +03:00
Triang3l 64fe2d8600 [D3D12] DXBC: Fix a typo breaking pixel shaders 2018-09-07 09:08:04 +03:00
Triang3l edcb537f9e [D3D12] DXBC vertex fetch (hangs GPU currently) 2018-09-07 00:36:15 +03:00
Triang3l 4212d2296a [D3D12] Remove 6_5_5 textures temporarily because they need custom untililng 2018-09-06 23:14:35 +03:00
Triang3l e2d60a4708 [D3D12] DXBC: Convert vertex index to float 2018-09-06 22:45:07 +03:00
Triang3l 2b2d7e71c6 [D3D12] DXBC: Add base vertex index 2018-09-06 22:22:19 +03:00
Triang3l 0d3ef9e05d [D3D12] DXBC vfetch byte swap 2018-09-06 22:05:20 +03:00
Triang3l bed58a2282 [D3D12] DXBC vfetch ld_raw part 2018-09-06 17:05:36 +03:00
Triang3l a0aa55b1e8 [D3D12] DXBC: Move interpolants to GPRs in pixel shaders 2018-09-06 14:16:17 +03:00
Triang3l 4cc9e84f35 [D3D12] DXBC position and color output 2018-09-06 13:37:14 +03:00
Triang3l ae4b34c66c [D3D12] DXBC: Result storing 2018-09-05 21:37:34 +03:00
Triang3l fd27057ce1 [D3D12] DXBC: Portion of result storing 2018-09-05 21:14:04 +03:00
Triang3l 5fb3fe3ab5 [D3D12] DXBC: maxas, maxasf 2018-09-05 18:43:06 +03:00
Triang3l b63d38319b [D3D12] DXBC: All setp instructions 2018-09-05 18:11:26 +03:00
Triang3l db87efdfaa [D3D12] DXBC: Most scalar opcodes 2018-09-05 16:38:47 +03:00
Triang3l 8cd645c4a4 [D3D12] DXBC vector ALU (except for cube) 2018-09-05 14:02:18 +03:00
Triang3l c4ceb6c0b9 [D3D12] DXBC: More vector instructions 2018-09-04 23:02:55 +03:00
Triang3l 72e6526067 [D3D12] DXBC: Some vector ALU opcodes 2018-09-03 23:03:37 +03:00
Triang3l b1247bd708 [D3D12] DXBC bool and 0/1 operand loading 2018-09-03 21:51:13 +03:00
Triang3l 04383a2113 [D3D12] DXBC loop constant loading 2018-09-03 08:14:52 +03:00
Triang3l cb9c2984dc [D3D12] DXBC float constant loading 2018-09-03 07:58:39 +03:00
Triang3l 45c83e84c8 [D3D12] DXBC source operand loading - registers 2018-09-02 23:35:11 +03:00
Triang3l 4a2329da25 [D3D12] DXBC source operand usage tokens 2018-09-02 21:12:36 +03:00
Triang3l 5798c9a45c [D3D12] DXBC SV_IsFrontFace 2018-09-02 17:14:11 +03:00
Triang3l 5dcff19efc [D3D12] DXBC internal registers 2018-09-02 16:50:00 +03:00
Triang3l 1413a7d206 [GPU] Rename uses_register_relative_addressing to uses_register_dynamic_addressing 2018-09-02 16:31:21 +03:00
Triang3l eda0d31b8f [D3D12] DXBC: Remove one TODO 2018-09-02 16:25:11 +03:00
Triang3l f90fa0cf33 [D3D12] DXBC vertex index byte swap 2018-09-02 16:10:20 +03:00
Triang3l fc6d388c4b [D3D12] DXBC code cleanup (mainly operands) 2018-09-02 13:58:03 +03:00
Triang3l 71e9085532 [D3D12] DXBC - reset interpolators and point parameters 2018-09-02 00:16:58 +03:00
Triang3l 5f24315c0e [D3D12] DXBC operand note comment 2018-09-01 23:28:28 +03:00
Triang3l b404f227b1 [D3D12] DXBC internal r# stack allocation 2018-09-01 22:20:05 +03:00
Triang3l da9f153a29 [D3D12] DXBC: Don't use indexable temps unless needed 2018-08-31 20:28:29 +03:00
Triang3l dad10c30e9 [GPU] Detect dynamic temp indexing before translating shaders 2018-08-31 20:06:53 +03:00
Triang3l 8c314072c8 [D3D12] DXBC color output remapping 2018-08-31 16:30:08 +03:00
Triang3l 37001993c5 [D3D12] DXBC indexable temps 2018-08-31 14:04:57 +03:00
Triang3l 4c812da3f2 [D3D12] DXBC pixel shader I/O and refactoring 2018-08-31 13:00:47 +03:00
Triang3l 639be6fdb8 [D3D12] DXBC vertex shader I/O 2018-08-30 22:04:11 +03:00
Triang3l 8268825f3b [D3D12] Switch to DXBC shader translator (currently unusable) 2018-08-30 20:42:22 +03:00
Triang3l 8376918bb7 [D3D12] DXBC shared memory 2018-08-30 19:46:06 +03:00
Triang3l 8d7559f0f9 [D3D12] DXBC dcl_constantbuffer 2018-08-30 19:01:05 +03:00
Triang3l aac20b6f91 [D3D12] DXBC ret and some RDEF/OSGN fixes 2018-08-30 15:58:48 +03:00
Triang3l 28b56aac2b [D3D12] DXBC SHEX writing 2018-08-30 15:12:27 +03:00
Triang3l c6e0c66c44 [D3D12] DXBC STAT writing 2018-08-30 14:42:17 +03:00
Triang3l 501bec8e5e [D3D12] Change root signature to allow vfetch in pixel shaders 2018-08-30 14:02:32 +03:00
Triang3l ac9d3d0b59 [D3D12] DXBC output signature 2018-08-29 23:36:08 +03:00
Triang3l b46a0c285f [D3D12] DXBC input signature 2018-08-29 21:54:22 +03:00
Triang3l b2ddbb6096 [D3D12] DXBC RDEF cbuffer bindings 2018-08-29 20:32:31 +03:00
Triang3l a30f8d6374 [D3D12] DXBC RDEF cbuffers 2018-08-29 19:46:38 +03:00
Triang3l 3edf41bea4 [D3D12] DXBC RDEF constants 2018-08-29 18:05:50 +03:00
Triang3l 6d783fd3bf [D3D12] DXBC RDEF types 2018-08-29 16:57:29 +03:00
Triang3l 443e371a94 [D3D12] Make SHM t0 and textures t1+ in VS as in DXBC SHM will be added first 2018-08-28 17:42:11 +03:00
Triang3l b3650a4b66 [D3D12] 6_5_5 texture format 2018-08-28 16:22:31 +03:00
Triang3l c2a5b65f8d [D3D12] Packed texture format swizzles 2018-08-28 16:10:26 +03:00
Triang3l df22ef2e6a [D3D12] EDRAM store sorting fix and RT base logging 2018-08-28 14:58:52 +03:00
Triang3l ccb57373fe [D3D12] DXBC RDEF header 2018-08-27 22:21:37 +03:00
Triang3l 90a36e3818 [D3D12] Alphatest fix and HLSL style cleanup 2018-08-27 17:21:57 +03:00
Triang3l 285de2a521 [D3D12] DXBC string append 2018-08-27 16:53:59 +03:00
Triang3l 1dc98d9133 [D3D12] DXBC size and checksum 2018-08-27 16:18:21 +03:00
Triang3l 945ced4996 [D3D12] Begin writing the DXBC translator 2018-08-27 15:58:58 +03:00
Triang3l 8ced574c6f [D3D12] Add DXBC tokens and checksum 2018-08-27 15:18:30 +03:00
Triang3l 629a8e0e25 [D3D12] Profile GPU time via BeginFrame 2018-08-27 12:54:15 +03:00
Triang3l 6d48b856b9 [D3D12] Point sprites and color exponent bias 2018-08-27 12:36:09 +03:00
Triang3l 1818905366 [D3D12] Add a flag to toggle half pixel offset 2018-08-26 23:50:38 +03:00
Triang3l 660a606f5e [D3D12] Make depth buffers less important than color in case of EDRAM aliasing 2018-08-26 20:26:49 +03:00
Triang3l 592873cf9f [D3D12] Quad list geometry shader 2018-08-26 19:51:20 +03:00
Triang3l 2c24622bdb [D3D12] Align size given by GetCopyableFootprints, fix device loss in Halo: Reach 2018-08-26 19:04:28 +03:00
Triang3l 85677af156 [D3D12] Translate shaders before updating render targets so color mask is valid 2018-08-26 17:45:23 +03:00
Triang3l e819a41300 [D3D12] Banjo-Kazooie/Tooie top tile clear fix (rendering still broken in Tooie) 2018-08-26 16:45:21 +03:00
Triang3l 91ef453534 [D3D12] Try to reload textures when a watch is triggered 2018-08-26 14:52:18 +03:00
Triang3l 227268ef65 [D3D12] Cleanup raw buffer view creation 2018-08-26 13:09:47 +03:00
Triang3l 79d43bb943 [D3D12] Refactor compute pipeline creation 2018-08-26 00:56:41 +03:00
Triang3l 791c275fab [D3D12] Cleanup object destruction in Shutdown functions 2018-08-26 00:24:25 +03:00
Triang3l ff014d47d4 [D3D12] Refactor root signature creation 2018-08-25 23:37:11 +03:00
Triang3l dba8ab4eed [D3D12] Refactor descriptors and resolve logging 2018-08-25 22:42:18 +03:00
Triang3l 50470d67a8 [D3D12] 32bpp and 20e4 clearing in resolves 2018-08-25 17:03:06 +03:00
Triang3l 66510b2e6f [D3D12] Experimental incomplete custom sample positions, disabled by default 2018-08-25 14:38:55 +03:00
Triang3l 304544cc72 [D3D12] Fix Y half-pixel offset 2018-08-25 10:50:47 +03:00
Triang3l 961c7e1198 [D3D12] Set 32bpp tile mode for all 32bpp formats 2018-08-25 10:29:52 +03:00
Triang3l 2c6224ad37 [D3D12] 32bpp tiling shader 2018-08-25 01:16:35 +03:00
Triang3l 4a747b3b81 [D3D12] Resolve shader and draw 2018-08-24 22:40:22 +03:00
Triang3l dd17cd3f9f [D3D12] Make RT heaps 48 MB so 2560x1024 RT can be resolved to R32G32B32A32 2018-08-23 23:25:42 +03:00
Triang3l 2e79eac976 [D3D12] Window output 2018-08-23 19:50:11 +03:00
Triang3l ea1abdaa6e [D3D12] Raw 32bpp resolve 2018-08-23 13:25:36 +03:00
Triang3l bc4125584c [D3D12] Shorten and batch barriers 2018-08-22 23:00:56 +03:00
Triang3l d204e9ba74 [D3D12] 32bpp raw resolve shader 2018-08-22 21:15:02 +03:00
Triang3l 2d8527c9df [D3D12] Common root constants for EDRAM load/store and single sample load 2018-08-22 19:54:51 +03:00
Triang3l c4f80aac0d [D3D12] EDRAM layout of a rectangle and other resolve stuff 2018-08-22 17:33:43 +03:00
Triang3l ddc8f17fa5 [D3D12] Depth untiling, update depth resolve documentation 2018-08-21 23:05:41 +03:00
Triang3l da1be211eb [D3D12] Add red/blue swap to EDRAM loads and describe resolve modes 2018-08-21 22:04:06 +03:00
Triang3l d628e92ff5 [D3D12] Resolve target dimensions 2018-08-20 19:09:04 +03:00
Triang3l f9fdcbb2dc [D3D12] Resolve dimension calculation 2018-08-20 17:58:20 +03:00
Triang3l 153c6bf713 [D3D12] Refactor EDRAM load/store pipelines into modes 2018-08-19 21:11:16 +03:00
Triang3l 1a4fc3bde2
[GPU] Add texture signedness enumeration
For sign_x, sign_y, sign_z and sign_w fields of xe_gpu_texture_fetch_t.
2018-08-19 15:25:20 +03:00
Triang3l e3a50a207d [D3D12] SHM functions needed for resolves 2018-08-18 22:43:02 +03:00
Triang3l 36cc19017a [D3D12] HLSL compilation fixes (still can't map one Halo 3 shader to vs_5_1) 2018-08-18 21:53:14 +03:00
Triang3l 7ba2526fa8 [D3D12] Move interpolators above position because it's more important for pixel shaders 2018-08-18 18:47:13 +03:00
Triang3l bd868ae6cc [D3D12] Fix a typo in linear texture address calculation 2018-08-18 18:37:20 +03:00
Triang3l bfb781d293 [D3D12] Texture invalidation (incomplete) 2018-08-18 15:24:02 +03:00
Triang3l 9e21f5ab67 [D3D12] SHM watch creation 2018-08-18 00:16:55 +03:00
Triang3l 005040e885 [D3D12] Shared memory watch structures 2018-08-17 21:41:18 +03:00
Triang3l e6ec390a04 [D3D12] Profile UpdateRenderTargets 2018-08-17 17:53:01 +03:00
Triang3l 8d6b75418d [D3D12] Clear present back buffer, more profiling scopes, remove logging in shared memory 2018-08-17 17:35:33 +03:00
Triang3l e572f65d11 [D3D12] DXT5A swizzle 2018-08-16 17:36:03 +03:00
Triang3l ed7f4ec4be [D3D12] Fix a typo in HLSL sqrt 2018-08-16 16:19:45 +03:00
Triang3l 14523145a2 [D3D12] ps_param_gen in HLSL 2018-08-16 15:53:55 +03:00
Triang3l bb518407a2 [D3D12] Disable blending if it's 1*S+0*D 2018-08-16 14:16:56 +03:00
Triang3l 7ced7c932c [D3D12] Fix a typo in a blending register name 2018-08-16 14:02:53 +03:00
Triang3l d94ebaf580 [D3D12] HLSL alphatest 2018-08-16 13:44:48 +03:00
Triang3l 8d2bfd4b88 [D3D12] Fix 16.16.16.16 vertex fetch 2018-08-16 12:20:27 +03:00
Triang3l c547851626 [D3D12] Upload data to shared memory during frame (fixes swaying palms in CoD4) 2018-08-16 12:07:53 +03:00
Triang3l 1cec143810 [D3D12] DXT3A textures 2018-08-15 16:59:43 +03:00
Triang3l 428095f62a [D3D12] CTX1 texture loading shader 2018-08-15 16:27:13 +03:00
Triang3l 17fb60a97a [D3D12] Rectangle list geometry shader and viewport fixes 2018-08-14 17:21:18 +03:00
Triang3l 1200eaae24 [GPU/D3D12] Correct EDRAM texture format names 2018-08-13 19:50:38 +03:00
Triang3l 24c3bac898 [D3D12] Fix cubemap coordinates 2018-08-13 00:30:20 +03:00
Triang3l 01a3bc32f7 [D3D12] More texture formats, rename blend map 2018-08-12 22:58:45 +03:00
Triang3l 34a1846859 [D3D12] 3D and cube texture HLSL compilation fixes 2018-08-12 21:12:34 +03:00
Triang3l ebc5911634 [D3D12] Samplers and fix blending not enabled 2018-08-12 21:03:57 +03:00
Triang3l de70451ac8 [D3D12] Partially implement tfetch in HLSL 2018-08-12 19:37:03 +03:00
Triang3l b0993fa3f0 [D3D12] Tiny HLSL control flow cleanup 2018-08-12 01:15:38 +03:00
Triang3l 0900036795 [D3D12] HLSL control flow fixes (still broken) 2018-08-12 01:08:19 +03:00
Triang3l ede9055ca5 [D3D12] Fix RT formats and log their creation 2018-08-12 00:18:15 +03:00
Triang3l 19401f03d0 [D3D12] EDRAM load, fix EDRAM depth encoding 2018-08-11 23:39:27 +03:00
Triang3l c7da5f0572 [D3D12] Count dirty RT rows rather than tiles 2018-08-11 21:04:14 +03:00
Triang3l 9b303c64ba [D3D12] EDRAM storing and random cleanup 2018-08-11 20:33:33 +03:00
Triang3l a4b98cda31 [D3D12] Add a missing component count to HLSL vfetch 2018-08-10 22:34:42 +03:00
Triang3l e5eb6636a7 [D3D12] Add a missing new line to the shader translator 2018-08-10 19:21:18 +03:00
Triang3l fe5ec61b51 [D3D12] Render target allocation fixes 2018-08-10 19:11:03 +03:00
Triang3l 6b9717c7f7 [D3D12] Fix retarded render target allocation bugs 2018-08-10 18:44:38 +03:00
Triang3l 952bb91c3f [D3D12] Render target binding 2018-08-10 18:06:21 +03:00
Triang3l c0c0ca263d [D3D12] Overlap detection when adding RTs 2018-08-08 20:04:17 +03:00
Triang3l 46dc640209 [D3D12] Ignore draws not writing to depth and fix a typo 2018-08-07 22:59:18 +03:00
Triang3l 52a1a80200 [D3D12] Rough outline of render target architecture 2018-08-07 22:40:24 +03:00
Triang3l 83cf482a50 [D3D12] 32bpb and 128bpb untiling, fix 3D tiled offset 2018-08-06 23:31:09 +03:00
Triang3l cfd3821b83 [D3D12] DXT1 untiling 2018-08-06 20:10:53 +03:00
Triang3l 265d6eb9df [D3D12] Fix texture size calculation and add texture creation logging 2018-08-05 18:45:57 +03:00
Triang3l b50d6d844f [D3D12] Texture object creation 2018-08-05 17:43:00 +03:00
Triang3l d75a372780 [GPU] Add info about unknown texture formats 2018-08-05 14:02:58 +03:00
Triang3l 620aa664e4 [D3D12] Apply exponent bias to vertex fetches 2018-08-04 20:48:45 +03:00
Triang3l 6d9225e84c [D3D12] Increase shared memory tile heap size to 16 MB so we don't allocate too many of them 2018-08-04 19:11:46 +03:00
Triang3l 7d80b5ae0d [D3D12] Fetch constants in PS for exp bias and 3D/stacked 2018-08-04 17:08:27 +03:00
Triang3l 991b120454 [D3D12] Fix one comment regarding descriptors in d3d12_command_processor 2018-08-03 23:12:13 +03:00
Triang3l 8a24ff5078 [D3D12] Texture utility functions, all block sizes and bpp 2018-08-03 23:11:09 +03:00
Triang3l 35aaa72722 [D3D12] SRV and sampler bindings 2018-08-03 16:39:13 +03:00
Triang3l 471ff6f157 [D3D12] Remove 20e4 depth range comment because it's used for 0-1 depth 2018-08-02 19:21:06 +03:00
Triang3l 034eb66968 [D3D12] Scratch GPU-side buffer (for untiled texture data) 2018-08-01 21:38:38 +03:00
Triang3l 6d2441a9ee [D3D12] Remove context_ from PipelineCache 2018-08-01 18:41:07 +03:00
Triang3l 1ae30e5775 [D3D12] Don't add .xyzw swizzle to stores 2018-08-01 16:17:48 +03:00
Triang3l 2b482352d0 [D3D12] Don't crash if failed to compile a shader 2018-08-01 14:02:32 +03:00
Triang3l 235799eecd [D3D12] Half-pixel offset improvement 2018-08-01 13:26:39 +03:00
Triang3l 6d6e803c7d [D3D12] Flip the viewport 2018-08-01 13:12:06 +03:00
Triang3l dea463f79b [D3D12] Fixes to make things drawn 2018-08-01 12:52:22 +03:00
Triang3l 2cedd61009 [D3D12] Fix HLSL fetch cbuffer usage 2018-08-01 01:23:38 +03:00
Triang3l db625892ea [D3D12] Shared memory typo fix and improvements 2018-08-01 01:09:51 +03:00
Triang3l 8fadd7a242 [D3D12] Fix vertex address in fetch range usage 2018-07-31 19:57:12 +03:00
Triang3l 5d0ad2e465 [D3D12] Draw calls 2018-07-31 19:23:43 +03:00
Triang3l bb045cae70 [D3D12] Restore W and apply half-pixel offset in VS 2018-07-31 17:13:44 +03:00
Triang3l fb1051b610 [D3D12] System constant setting and some cleanup 2018-07-31 16:17:51 +03:00
Triang3l 2183a969af [D3D12] Make tiled resource toggleable, disable debug layer by default 2018-07-30 20:18:52 +03:00
Triang3l e0eede73b9 [D3D12] Constant buffer binding 2018-07-30 15:59:43 +03:00
Triang3l 84e7ae16e7 [D3D12] Enable independent blending 2018-07-29 17:30:08 +03:00
Triang3l 2d59231993 [D3D12] Pipeline cache and command processor formatting 2018-07-29 00:57:25 +03:00
Triang3l b567b9e9cc [D3D12] Upload buffer pool class 2018-07-29 00:56:37 +03:00
Triang3l ae7ff58f81 [D3D12] Pipeline cache 2018-07-28 16:30:47 +03:00
Triang3l 4f7edff19d [D3D12] SHM: Watches prototype, some uploading 2018-07-26 22:52:26 +03:00
Triang3l 812a35caff [D3D12] SHM: Range fixes, logging, testing 2018-07-26 01:01:48 +03:00
Triang3l bd54e905b2 [D3D12] SHM: Mark outdated pages for upload when using them 2018-07-25 21:36:39 +03:00
Triang3l 2be5f2cfa2 [D3D12] SHM uploading 2018-07-25 20:24:39 +03:00
Triang3l bbabbc2439 [D3D12] SHM - mark pages as modified in the beginning of a frame 2018-07-25 15:04:14 +03:00
Triang3l ae1196f29d [D3D12] Shared memory - heap creation 2018-07-25 00:47:02 +03:00
Triang3l 82f2abed0d [D3D12] Command processor command lists 2018-07-24 17:07:38 +03:00
Triang3l 3a90f7a246 [D3D12] Enable instruction numbers and offsets in DXBC disassembly 2018-07-24 16:47:55 +03:00
Triang3l ea922bb3ab [D3D12] Temporarily disable shader optimization 2018-07-24 16:07:00 +03:00
Triang3l c0ff73a588 [D3D12] Build and code format fixes 2018-07-24 15:14:16 +03:00
Triang3l 87aecfa1b8 [D3D12] Shaders (not all compiling yet) 2018-07-24 14:57:21 +03:00
Triang3l b0421de496 [D3D12] Cube instructions 2018-07-23 18:37:55 +03:00
Triang3l f237f7e8eb [D3D12] Shader translator CompleteTranslation 2018-07-23 17:23:35 +03:00
Triang3l 60706077a3 [D3D12] Shader translator scalar ALU 2018-07-23 16:55:40 +03:00
Triang3l 40806c1b67 [D3D12] Shader compiler vector ALU 2018-07-23 11:22:43 +03:00
Triang3l 3101930526 [D3D12] Shader translator vertex fetch 2018-07-22 23:15:36 +03:00
Triang3l 67f88ff59c [D3D12] HLSL shader translator stores 2018-07-22 14:28:33 +03:00
Triang3l 11e4ae3f90 [D3D12] HLSL shader translator loads 2018-07-22 13:35:40 +03:00
Triang3l d60c8b29ca [D3D12] Convert GlslShaderTranslator flow control to HLSL 2018-07-21 23:37:28 +03:00
Triang3l 00d5bd48da [D3D12] A bit of HLSL shader translator 2018-07-21 21:45:33 +03:00
Triang3l ffcf18f193 [D3D12] Move fences to a separate class, get rid of Vulkan provider 2018-07-19 14:08:52 +03:00
Triang3l d7701ae86b [D3D12] D3D12Context initialization 2018-07-19 12:48:11 +03:00
Triang3l e9083dbc2f [D3D12] Create xenia-ui-d3d12 project 2018-07-18 15:02:37 +03:00
Triang3l fde3c1f0e8 [D3D12] Copy the null graphics system as D3D12 2018-07-18 12:02:00 +03:00
Triang3l c2b2a9f376 [D3D12] Create the project and link D3D libraries 2018-07-18 11:42:51 +03:00
gibbed ba7dc6b2d7 [GPU] Improve readability of initialization errors and remove references to OpenGL. 2018-07-01 16:50:03 -05:00
Rick Gibbed 94d1106386
Merge pull request #1177 from Triang3l/depthbias.
[GPU] Depth bias support
2018-07-01 01:34:34 -05:00
gibbed 15eb6ed2d9 [Vulkan] Fix GetMipExtent calculating mip extent incorrectly. 2018-07-01 01:31:33 -05:00
gibbed 4357415892 [GPU] Better names for tiled functions. 2018-07-01 01:30:22 -05:00
Triang3l c6255af824 [GPU] Depth bias support 2018-06-16 16:32:14 +03:00
gibbed 1409b9c565 [GPU/Vulkan] Add support for 2D image stacks. 2018-06-05 07:51:51 -05:00
gibbed 486172770d [GPU] Ignore min mip level when one is specified and there is no mip address. 2018-06-04 22:54:41 -05:00
gibbed aba0f3c628 [GPU] Ensure pitch/height are a multiple of block size for host textures. 2018-06-04 22:53:30 -05:00
gibbed 2c7043bd98 [GPU/Vulkan] Maybe fix minimum mip level. Probably breaks everything. 2018-06-04 10:13:28 -05:00
gibbed b5a88d1a7d [GPU] Track unaligned (visible) block width in texture info.
[Vulkan] Don't use power of two for mip width/height calculation for host textures.
[Vulkan] Add more Vulkan error logging.
[Vulkan/GPU] Rudimentary texture dumping.
2018-06-04 06:08:29 -05:00
gibbed b35fe935f9 [GPU] Ignore mipmap level count when mip data address is invalid. 2018-06-01 22:04:31 -05:00
gibbed 0d429fc7d7 [Vulkan] Disable texture mipmap watches by default. 2018-05-31 23:00:11 -05:00
gibbed 79f8fe9f37 [GPU] Fixes to problems caused by previous commit (bad handling of memory addressing, watches, etc). 2018-05-31 21:50:22 -05:00
gibbed e329649f2e [GPU] Rename texture_memory_usage.cc to texture_extent.cc 2018-05-31 19:43:26 -05:00
gibbed e89a31006f - [GPU] Rename TextureMemoryUsage to TextureExtent (and relevant functions/etc).
- [GPU] Precalculate memory byte usage for base mip (and any additional mip levels).
- [GPU] Change TextureCache::WatchCallback so that if it's fired multiple times for the same texture it does not assert.
- [GPU] Add write watches for texture memory associated with additional mipmap levels.
2018-05-31 19:41:33 -05:00
gibbed d0df71b8b6 [Vulkan] Move texture config to its own files. 2018-05-31 10:35:58 -05:00
gibbed 1573b7570d [Vulkan] Apply distinct component and vector swizzles. 2018-05-31 10:29:08 -05:00
gibbed 2314f25fb7 [Vulkan] Force red channel into all channels for DXT5A. Probably wrong solution but will work for now. 2018-05-31 09:47:41 -05:00
gibbed 958aa04cc5 [Vulkan] Fix swizzle for DXT5A. 2018-05-31 07:31:33 -05:00
gibbed ec3ab0adbd [GPU] Stub out context update GPU opcode.
[Vulkan] Gracefully handle vertex upload failures.
2018-05-30 20:49:30 -05:00
gibbed bbebfd49c8 [Vulkan] Add logging to certain error conditions.
[Vulkan] Track both texture block height and texture block vertical pitch.
[Vulkan] Only convert the necessary visible height on texture uploads.
[Vulkan] Fix write watch on texture data so it properly only covers mip 0 data.
2018-05-30 19:38:36 -05:00
gibbed 7068d0a5a9 [Vulkan] More details in texture upload logging. 2018-05-30 18:19:37 -05:00
gibbed 6b2f75219c [Vulkan] Include format/dimension in render texture debug name. 2018-05-30 18:19:06 -05:00
gibbed 2d68ec162d [Vulkan] Remove unnecessary swizzles. 2018-05-30 18:16:11 -05:00
gibbed 8a099925f3 Shut Travis up. 2018-05-30 10:09:19 -05:00
gibbed 6e000039e8 [Vulkan] Maybe fix the rectangle list shader, part two! Probably still breaks everything. 2018-05-30 09:56:44 -05:00
gibbed 8882d7eebd [Vulkan] Maybe fix the rectangle list shader. Probably breaks everything. 2018-05-30 08:04:16 -05:00
gibbed fed60962d6 [Vulkan] Regenerate shaders, and explicitly require the extensions they depend on. 2018-05-30 08:04:16 -05:00
DrChat f518ec1b37 [GPU] Add coherency debug logs 2018-05-29 19:42:59 -05:00
gibbed 62bb26878f [GPU] Whoops, CompositeExtract should come after the loads. 2018-05-28 21:10:11 -05:00
gibbed 3e6a9099d1 [GPU] Fix composite extracts from previous commit. 2018-05-28 20:34:53 -05:00
gibbed 83a9cb3435 [GPU] Use uint4 for loop/bool constants to meet std140 packing requirements. 2018-05-28 18:19:22 -05:00
gibbed 2bd9bae0f4 [Vulkan] Better swizzle for DXT3A/DXT5A? 2018-05-28 17:25:32 -05:00
gibbed 425764698e [Vulkan] Improvements to texture upload code, fix mipmap uploads, remove no_mipmaps flag. 2018-05-28 07:06:33 -05:00
gibbed b623c33e00 [Vulkan] Add no_mipmaps flag. 2018-05-27 20:36:45 -05:00
gibbed 9231317eeb [Vulkan] Generalize texture conversion, and fix cube textures in the process. 2018-05-26 11:19:52 -05:00
gibbed 7df45bf590 [Vulkan] Fix DXT3A conversion. 2018-05-26 08:25:25 -05:00
gibbed cc130e1b07 [GPU] Remove unused code. 2018-05-26 07:06:56 -05:00
gibbed 7116b5fc82 [Vulkan] Reimplemented texture conversions. Here be dragons! Probably breaks everything. Also bonus DXT3A support. 2018-05-26 06:57:16 -05:00
gibbed 73d75c56e1 [GPU] Fix TextureInfo::Prepare for 3D textures. 2018-05-24 23:45:38 -05:00
gibbed 6411674f0f [GPU] Use pitch for block width calculation. 2018-05-24 08:45:12 -05:00
gibbed 4613c6b8b8 [Vulkan] Better macro for channel swizzling. 2018-05-23 20:37:32 -05:00
gibbed e9290cd2e0 [Vulkan] Rework component swizzles into channel swizzles. Probably breaks everything. 2018-05-23 20:19:53 -05:00
gibbed 09585eb103 [GPU] Clarify assert in SpirvShaderTranslator::StoreToResult. 2018-05-23 04:55:32 -05:00
gibbed cb4b1bae1b [Vulkan] Forgot to undef the new RRRR swizzle macro. 2018-05-22 11:07:27 -05:00
gibbed 9bc17cd1d4 [Vulkan] Maybe fix DXT5A? 2018-05-22 10:52:52 -05:00
gibbed ee5724f5dd [GPU] Move gamma ramp tracking to CommandProcessor. 2018-05-22 05:36:24 -05:00
gibbed fb650ae024 [Vulkan] Start tracking the gamma ramp. 2018-05-21 23:16:15 -05:00
gibbed 8a65dbd024 [GPU] Make some gaps in the register table more obvious. 2018-05-21 22:56:05 -05:00
gibbed cddfa26bae [GPU] Add IsSRGBCapable default case. 2018-05-20 12:18:31 -05:00
gibbed c233eabeda [GPU] Remove extraneous breaks from GetTexelSize. 2018-05-20 02:10:16 -05:00
gibbed 3f901311af [GPU] Add SRGB helper function. 2018-05-20 02:08:49 -05:00
Dr. Chat cb608b7f98 [Vulkan] GetBaseRTFormat 2018-05-19 17:02:17 -05:00
Dr. Chat 1e1ba34d76 [Vulkan] Unbreak the 2_10_10_10 RT formats a bit further 2018-05-19 16:55:42 -05:00
gibbed 981590bc98 [Vulkan] Don't break k_2_10_10_10. 2018-05-19 16:37:05 -05:00
gibbed 5fafdb2e7a [Vulkan] Force k_2_10_10_10* to k_16_16_16_16_FLOAT. Probably breaks everything. 2018-05-19 15:58:26 -05:00
gibbed b33ccdf0cd [Vulkan] Better debug names. 2018-05-19 15:49:37 -05:00
gibbed 8064926999 [Vulkan] Implement support for color_exp_bias. 2018-05-19 15:45:13 -05:00
gibbed 9655b76f68 [Vulkan] Simplify color/depth info access in IssueCopy. 2018-05-19 14:48:00 -05:00
gibbed 77b097098d [GPU] Add color_exp_bias to push constants. 2018-05-19 14:39:32 -05:00
gibbed 16e33cf123 [Vulkan] Fix a PrepareResolve call the last commit forgot. 2018-05-18 18:37:59 -05:00
Dr. Chat 191dc30bee [GPU] Use the pitch field in tfetch constants 2018-05-18 13:48:28 -05:00
DrChat f591f2dace [Vulkan] Workaround for rapid fence reuse causing a memory leak 2018-05-18 09:59:26 -05:00
gibbed 6807ef3653 [Vulkan] Fix hashing of vertex bindings. 2018-05-14 11:42:22 -05:00
gibbed 170ab85049 [Vulkan] Reworking packed mip offset calculation. Probably breaks everything. 2018-05-14 03:47:58 -05:00
gibbed 2238ff9ff0 [Vulkan] Use BGRA swizzle for 565. 2018-05-13 16:51:20 -05:00
Dr. Chat 996ea9e273 [GPU] Ditto for GetMipLinearSize 2018-05-13 13:59:48 -05:00
Dr. Chat 1953cea64e [GPU] Unconditionally multiply in src.depth in GetMipByteSize (always valid) 2018-05-13 13:58:34 -05:00
gibbed 0a971462d7 Fix formatting to make lint happy. 2018-05-13 09:02:40 -05:00
gibbed 1ffa4747db [Vulkan] Better debug object names. 2018-05-13 08:42:36 -05:00
gibbed ab0f75307a [Vulkan] More information on uploaded textures in log. 2018-05-13 08:41:20 -05:00
gibbed ef924a8423 [Vulkan] Cube textures, now with mipmaps. 2018-05-13 08:31:33 -05:00
gibbed 9b64e67e14 [Vulkan] Fix following mips for compressed textures. 2018-05-12 20:19:58 -05:00
gibbed 7a1167fd66 [Vulkan] Align ALL texture block sizes to tile dimensions. Probably breaks everything. 2018-05-12 19:40:54 -05:00
gibbed 1c8cec45f3 [Vulkan] Properly copy untiled texture data. 2018-05-12 19:39:35 -05:00
gibbed c6ee689159 [Vulkan] Rework GetMipByteSize to properly handle linear textures. Probably breaks everything. 2018-05-12 02:30:58 -05:00
gibbed 9926bf1cf6 [Vulkan] Don't try to get mip 0's offset when there is only one mip. 2018-05-12 00:52:02 -05:00
Rick Gibbed a510bc3c78
[Vulkan] Use BGRA swizzle for 1555. 2018-05-11 20:05:59 -05:00
Rick Gibbed 988877f428
[Vulkan] Use BC4 for DXT5A. 2018-05-11 15:58:27 -05:00
Dr. Chat 53f5a218c6 [Vulkan] Log GPU resolves 2018-05-08 20:59:32 -05:00
Dr. Chat da62e0e044 [GPU] Rename TextureInfo::size_xx -> TextureInfo::size 2018-05-08 10:29:36 -05:00
Dr. Chat 212688249c [Vulkan] Update ConvertTextureCube to use mips 2018-05-07 19:03:49 -05:00
Dr. Chat e44fb33b79 [Vulkan] Fix (non-mipmapped) linear 2D texture uploads 2018-05-07 19:00:25 -05:00
Dr. Chat f3134e265a [Vulkan] Swap k_4_4_4_4 as well. 2018-05-07 17:42:51 -05:00
Dr. Chat 25c2048b1a [Vulkan] Texture swizzling for certain texture formats 2018-05-07 16:33:17 -05:00
Dr. Chat 77d1d7342e [GPU] Remove TextureInfo::has_packed_mips 2018-05-05 18:23:30 -05:00
Dr. Chat 30f8fe7bb0 [GPU] Use log2 when calculating mip offset 2018-05-05 10:45:39 -05:00
Dr. Chat 61e47167c0 [Vulkan] Replace vulkan-loader with volk 2018-05-04 16:49:46 -05:00
Dr. Chat 88729e2ac4 [GPU] Initial (and possibly incorrect) texture size calculation for 1D and 3D 2018-05-04 12:10:26 -05:00
Dr. Chat 040d8d1ade [GL4] Farewell, GL4 backend 2018-05-04 11:54:33 -05:00
Dr. Chat f54ac240a4 [Vulkan] Stupid hack to fix ABGR4 formats. 2018-05-04 09:45:42 -05:00
Dr. Chat 7a3d0b683b [Vulkan] Fix block pitch calculation of mips 2018-05-04 00:18:45 -05:00
Dr. Chat 8ecadd49d2 [GPU] Further fix mip address calculations with really skewed aspect ratios 2018-05-04 00:18:22 -05:00
Dr. Chat 911588e9dc [GPU] Fix mip size calculation for compressed textures 2018-05-03 18:34:23 -05:00
Dr. Chat f45cd398ef [Vulkan] Handle MIPs with non-power-of-two dimensions 2018-05-03 17:54:09 -05:00
Dr. Chat 04748b4a0d [GPU] TextureInfo::GetMipLocation - calculate packed mip offset 2018-05-03 16:04:11 -05:00
Dr. Chat 5e4b696782 [SPIR-V] Reset writes_depth_ 2018-05-03 14:15:53 -05:00
Dr. Chat f885b89a03 [Vulkan] Make image views cover all mips
Align texture dimensions to 1 block minimum (for uploading mips)
2018-05-03 14:15:36 -05:00
Dr. Chat c9d4cfe6d0 [GPU] MIPs > 16 pixels are stored in their own individual tiles 2018-05-03 12:01:50 -05:00
DrChat 1f157f35f4 [Vulkan] Initial support for mipmaps 2018-05-03 10:02:07 -05:00
DrChat f7c7cc54ed [GPU] TextureInfo::GetMaxMipLevels 2018-04-30 11:01:46 -05:00
Dr. Chat 62bee78edd [SPIR-V] Declare DepthReplacing if we replace depth 2018-04-29 18:43:31 -05:00
Dr. Chat 87bfad1f74 [GPU] PM4_EVENT_WRITE_EXT destination is /not/ aligned (to 16 bytes) 2018-04-29 18:26:36 -05:00
DrChat 86f387ed42 [SPIR-V] Fix 1D texture fetches. Fixes #1124 2018-04-20 15:25:07 -05:00
DrChat 2b66a1b68f [Vulkan] Emulate Xenos behavior with copy dest at a negative offset
It appears the Xenos starts copying pixel data at the first encountered visible destination pixel, rather than texture mapping the source texture onto the destination polygon
2018-04-17 15:35:24 -05:00
DrChat 0cff91692e [Vulkan] Propagate errors in the render cache 2018-04-16 22:09:23 -05:00
DrChat 521b9eb5c5 [Vulkan] Fix window scale and offset calculation 2018-04-16 18:27:23 -05:00
DrChat 27c840fa91 [Vulkan] Fixup window offset calculation 2018-04-16 15:44:52 -05:00
DrChat 18d9efc93b [Vulkan] Bump down BufferCache alignment 2018-04-16 13:02:05 -05:00
DrChat b90465e2e5 [Vulkan] Halve the viewport dimensions when viewport scaling is disabled (10240 -> 5120)
The negative part of the viewport is unused, so hijack the 2 unused parameters of the window scale to use as an offset
2018-04-16 12:54:50 -05:00
DrChat 25f93a171c [Vulkan] Support optional vertex window offset 2018-04-16 11:08:24 -05:00
DrChat 6ca771d26f [Vulkan] Handle window scissor window_offset_disable 2018-04-14 17:51:57 -05:00
DrChat f8319ec12f [Base] Support sign-extension in bitfield 2018-04-14 17:34:21 -05:00
DrChat d914791afe [SPIR-V] Fix SetTextureLOD 2018-04-14 15:39:48 -05:00
DrChat 303539af22 [SPIR-V] Fix incorrect dst implementation (incorrect extraction indices) 2018-04-14 15:32:18 -05:00
DrChat 0f0d600a5b Fix Travis 2018-04-13 21:45:47 -05:00
DrChat 39083acdcb [Vulkan] Bump up maximum number of vertex buffers 2018-04-13 21:09:56 -05:00
DrChat 399e1fac2a [Vulkan] Gracefully fail on copy if a target format is unsupported 2018-04-13 21:09:21 -05:00
DrChat abdc0ff05a [GPU] Document first parameter of eA (export address) 2018-04-13 21:07:14 -05:00
DrChat 6794b4975c [SPIR-V] Use texture sample calls with constant offset 2018-04-13 21:06:45 -05:00
DrChat e6524aa497 [GPU] Disassemble memexport exports 2018-04-08 18:02:39 -05:00
DrChat 1d4fa80eac [GPU] Fixup ringbuffer log2_size (which specifies size in qwords)
Save microengine init packets
2018-04-08 15:50:36 -05:00
DrChat 9653c0bafc [GPU] Allow dynamic building of GPU packets 2018-04-03 19:08:30 -05:00
DrChat 14abe1a407 Fixup 360 support 2018-04-03 19:02:49 -05:00
DrChat a9d2a50082 [Vulkan] Add AMD shader statistics info support 2018-03-03 12:34:19 -06:00
DrChat 199328f971 [Vulkan] PipelineCache ClearCache support and pipelines counter 2018-03-03 11:36:12 -06:00
DrChat 43043fd4a8 [Vulkan] Track pixel center in pipeline cache (but don't apply it quite yet) 2018-03-03 10:30:59 -06:00
DrChat c8698f912f [Vulkan] Add pending delete textures counter 2018-03-02 23:46:58 -06:00
DrChat 9235a8107b [Vulkan] Track active textures in the texture cache 2018-03-02 23:28:29 -06:00
DrChat 2e3115660f [Vulkan] Scavenge Profiling 2018-03-02 21:42:49 -06:00
DrChat d31db60a75 [SPIR-V] tfetch UseRegisterLOD support 2018-03-01 13:46:44 -06:00
DrChat ea3ee2db2b [SPIR-V] No implicit lod on vertex shaders 2018-03-01 13:30:21 -06:00
DrChat b3626a039b [Vulkan] Remove backend swap event (unused and confusing) 2018-03-01 10:19:11 -06:00
DrChat b2f1bf914a [Vulkan] Set proper aspect mask in depth uploads 2018-03-01 09:54:15 -06:00
DrChat 702a8732c8 [GPU] Free the command processor in the destructor rather than on shutdown
Fixes a race condition: TDR followed by WriteRegister will cause a crash. It's okay to continue writing to the command processor (it may be setup again later).
2018-02-28 15:19:02 -06:00
DrChat 2a52156edf [Vulkan] Change invalidated_textures_ to an unordered set 2018-02-24 14:23:22 -06:00
DrChat a753dbed15 [Vulkan] Update the rest of the shaders 2018-02-24 11:15:58 -06:00
DrChat 8fd9ab8387 [Vulkan] Fix input mismatch in dummy.frag 2018-02-24 11:15:27 -06:00
DrChat 24baf58ae3 [SPIR-V] Proper implementation of getGradients 2018-02-23 00:00:07 -06:00
DrChat 5a4dcd7043 [Vulkan] Shader module debug object names 2018-02-22 23:07:54 -06:00
DrChat 5b6766b210 [SPIR-V] Fix a few issues with shaders (validation)
Properly calculating the number of texture bindings
2018-02-22 22:06:05 -06:00
DrChat 77da785d70 [Vulkan] Use locally generated texture binding indices instead of GPU indices 2018-02-22 21:00:54 -06:00
DrChat da4cf1bc80 [SPIR-V] 2_10_10_10 is actually 10_10_10_2 2018-02-22 18:37:24 -06:00
DrChat ea5c98248f [Vulkan] Remove dead vertex input code from the pipeline cache 2018-02-22 14:01:52 -06:00
DrChat 1a263f14a2 [Vulkan] Hash and track vertex descriptor sets (similar to texture cache) 2018-02-20 21:25:51 -06:00
DrChat 2a908eb86d [SPIR-V] Handle 32-bit normalized unsigned formats 2018-02-20 16:25:37 -06:00
DrChat b3de604f9e [SPIR-V] Fix offsetof on Travis 2018-02-19 19:09:06 -06:00
DrChat b5127cf924 [SPIR-V] Remove is_signed/is_integer check on float formats (they're ignored) 2018-02-19 12:53:53 -06:00
DrChat a3cf3a7694 [SPIR-V] Don't bother setting up vertex bindings if they aren't used. 2018-02-19 12:45:17 -06:00
DrChat be687f5f27 [SPIR-V] Size the vertex bindings input based on actual number of bindings 2018-02-19 11:28:22 -06:00
DrChat 16cf9883ca [Vulkan] Fix a couple validation errors 2018-02-19 11:19:24 -06:00
DrChat 103ecbab7e [SPIR-V] 32 [u]int formats 2018-02-19 11:01:45 -06:00
DrChat ff6d306728 [SPIR-V] Handle 16/16, 16/16/16/16 (float and norm) and 32f 2018-02-19 08:11:31 -06:00
DrChat 6fb176528b [SPIR-V] Don't group together unimplemented fetches 2018-02-19 00:23:15 -06:00
DrChat 081c142c4c [SPIR-V] Convert 8888, 32, 2/10/10/10 2018-02-19 00:14:38 -06:00
DrChat fe9c83c15b [Vulkan] First working version of dynamic vfetch! 2018-02-18 23:22:02 -06:00
DrChat 4c766dcc61 [Vulkan] BufferCache: Fix a few problems 2018-02-18 20:54:29 -06:00
DrChat f3f1a7fe42 [SPIR-V] Update glslang
WIP new vertex fetching
2018-02-18 20:13:38 -06:00
DrChat 4e1a55f585 [Vulkan] Bind the vertex set to DS slot 2 2018-02-18 18:50:53 -06:00
DrChat 9463732709 [Vulkan] BufferCache::PrepareVertexSet 2018-02-18 18:48:23 -06:00
DrChat 4be725c4b4 [Vulkan] Create/Free Vertex Descriptor Pool 2018-02-18 18:26:28 -06:00
DrChat af406df793 [Vulkan] Move the constant descriptor set to its own setup/destroy functions 2018-02-18 18:11:52 -06:00
DrChat 300656f788 Merge branch 'master' into vk_vfetch 2018-02-18 17:02:59 -06:00
DrChat 79308b477f Merge branch 'vtx_cache' 2018-02-18 16:49:32 -06:00
DrChat 71e5e967ec [Vulkan] Disable vertex buffer cache expansion for now. 2018-02-18 16:49:15 -06:00
DrChat 05192e3c0f [Vulkan] Prevent negative scissor offsets 2018-02-18 15:14:34 -06:00
DrChat 1a113fb82b [Vulkan] Fix cube texture uploads 2018-02-18 14:59:34 -06:00
DrChat ffef59aaa5 [Base] RingBuffer: Add ReadAndSwap instead of piggybacking off of Read 2018-02-18 12:18:20 -06:00
Dr. Chat 3d1c2a6c9a [GPU] Update vizquery documentation 2018-02-16 22:03:33 -06:00
DrChat 22929182e6 [GPU] Update the docs of a few registers 2018-02-16 18:33:01 -06:00
DrChat 1dba231049 [Vulkan] Handle primitive reset index on copy 2018-02-16 18:31:43 -06:00
DrChat 776b5eff36 [Vulkan] BufferCache: Add VertexBuffer struct 2018-02-16 16:51:32 -06:00
DrChat db53559611 Merge branch 'master' 2018-02-16 16:34:17 -06:00
DrChat 30e0a258e4 [Vulkan] Buffers typically aren't aligned. 2018-02-15 17:05:54 -06:00
DrChat 310606d0f6 Merge branch 'master' into vk_vfetch 2018-02-14 20:31:31 -06:00
DrChat c9a5553fe9 [Vulkan] Upload entire vertex allocation into the transient cache (for now) 2018-02-11 20:43:32 -06:00
DrChat d015de4a84 [Vulkan] Smarter transient cache
Detect cases where requested vertex data has already been uploaded in a larger buffer
2018-02-10 21:08:17 -06:00
DrChat 5a637d6899 [Vulkan] Add VMA to Buffer Cache 2018-02-09 20:58:17 -06:00
DrChat c7ffec3260 [GPU] Add unknown registers E00/E40 to register file 2018-02-09 20:57:51 -06:00
DrChat 3ad45f4186 [Vulkan] New docs for buffer cache 2018-02-09 20:57:26 -06:00
DrChat 455dfeb39f [Vulkan] Use a static function for texture invalidation callbacks 2018-02-09 16:58:56 -06:00
DrChat b38b9e43ea [Vulkan] Don't bother re-hashing previously covered bindings 2018-02-07 18:40:41 -06:00
DrChat 7ea3381699 [Vulkan] texture_bindings_ -> texture_sets_ 2018-02-07 18:40:12 -06:00
DrChat 3e157972cc [Vulkan] Add a few size checks on vertex bindings (max across all cards is 32) 2018-01-03 16:40:31 -06:00
DrChat 10f74fc45a Merge branch 'master' into vk_vfetch
# Conflicts:
#	src/xenia/gpu/spirv_shader_translator.cc
2018-01-01 18:30:29 -06:00
Dr. Chat d512d4127f [SPIR-V] Fix the build. 2018-01-01 15:00:37 -06:00
DrChat 26f3100c23 [SPIR-V] Don't normalize denormalized 10/11/11 formats if not requested 2017-12-28 16:20:35 -06:00
DrChat e5fd81b22f [SPIR-V] Don't normalize denormalized 10/11/11 formats if not requested 2017-12-24 13:54:44 -06:00
DrChat 8784daf6bc [Vulkan] Don't allocate textures if we don't know the format.
DTX5A = ATI1
2017-12-23 21:02:33 -06:00
DrChat 28ebb4bf43 [Vulkan] Offset the destination rect and viewport by the window offset 2017-12-23 12:53:00 -06:00
DrChat 26100c586f [Vulkan] Track render target state with the pipeline cache 2017-12-22 23:33:27 -06:00
DrChat 516c113423 [SPIR-V] Fix tfetches with an offset 2017-12-22 23:15:18 -06:00
DrChat 20099e51af Formatting 2017-12-22 22:24:51 -06:00
DrChat 366e8b1b6a [SPIR-V] Fix invalid 1D texture offsets 2017-12-22 22:24:19 -06:00
DrChat fb89973266 [SPIR-V] Add support for loops 2017-12-22 22:23:28 -06:00
DrChat 80b0b66e5d [Vulkan] Regenerate shaders with newer glslang 2017-12-21 23:14:42 -06:00
DrChat 4cfe1e3203 [Vulkan] Support window scissor in IssueCopy 2017-12-21 22:38:35 -06:00
DrChat 2e1d33b8d3 [Vulkan] Correct some more pipeline barriers 2017-12-21 17:03:02 -06:00
DrChat f26bd04a6c [Vulkan] Fix typo causing depth image views to be overwritten by a stencil view 2017-12-21 16:51:55 -06:00
DrChat 554d333299 [Vulkan] Request depth/stencil attachment usage for textures that support it 2017-12-21 15:13:54 -06:00
DrChat ab7dce53ec [Vulkan] Fix another incorrect pipeline stage barrier 2017-12-21 15:13:01 -06:00
DrChat 697eccf23e [SPIR-V] Fix incorrect FOrdEqual result type 2017-12-21 15:12:02 -06:00
DrChat cbfaffd9f3 [Vulkan] Correct a bunch of incorrect pipeline barrier stages 2017-12-21 13:11:34 -06:00
DrChat 8bf10a941a [GPU] TraceViewer *.xenia_gpu_trace -> *.xtr 2017-12-21 11:05:50 -06:00
DrChat ecfaaa6c95 [GPU] Log attempts to fetch unsupported texture formats 2017-12-20 21:26:52 -06:00
DrChat 9395b73217 [Travis] Enable full Xenia build on linux 2017-12-20 16:27:01 -06:00
DrChat 886a223cf2 [GPU] Remove a few unused variables from TraceDump 2017-12-20 14:38:02 -06:00
DrChat db34128b95 Fix linux build of the vulkan trace dumper 2017-12-19 18:29:00 -06:00
DrChat d3b03b9a93 [Vulkan] Update VMA 2017-12-19 18:19:03 -06:00
DrChat 4d159efef5 [GPU] Run TraceDump headless, and drop the GL4 trace dumper 2017-12-19 16:37:59 -06:00
DrChat 09b3a07e3c Support rendering windowless (tested on the Vulkan backend) 2017-12-19 16:05:36 -06:00
DrChat 11f8da9092 [GPU] Whoops, accidentally flipped is_integer around. 2017-12-18 18:11:24 -06:00
DrChat 55d2c03943 [GPU] Rename a few misnamed vfetch fields 2017-12-18 17:24:52 -06:00
DrChat 29c5fb8022 [GPU] Short circuit command processor waits if an exit is requested. 2017-12-18 17:23:14 -06:00
DrChat d98344f99b [Vulkan] Log down strings when an invalid usage flag is specified. 2017-12-18 15:47:52 -06:00
DrChat b5d647d540 [Vulkan] Better handling of device lost events (present fatal error dialog) 2017-12-18 14:27:00 -06:00
DrChat 6e0550d46b [GPU] Strip the extension from .xtr files when choosing the output path. 2017-12-17 15:17:44 -06:00
DrChat d4338a2c3f [GPU] Use overall shorter names for xenia GPU traces 2017-12-17 15:00:10 -06:00
DrChat c7859da997 [GPU] Fix TraceDump progress not showing 2017-12-17 13:44:39 -06:00
DrChat f4a0dbac75 [GPU] Don't bother redrawing the trace dump window 2017-12-17 13:12:42 -06:00
DrChat 6b4e8ee19e [SPIR-V] New flag: spv_disasm - Generate disassembly for spir-v shaders (disabled by default) 2017-12-17 13:12:10 -06:00
DrChat 5da59a95c9 Merge branch 'linux' 2017-12-16 17:15:49 -06:00
DrChat 49287579ff [Vulkan] Robustify error handling during initialization 2017-12-16 15:14:48 -06:00
DrChat bf9fa02b18 [GPU] Accept input and output path as command line parameters 2017-12-15 23:48:23 -06:00
DrChat 66d19a462b [GPU] Make TraceDump error handling more robust
Exit with code -1 if GraphicsSystem::Capture failed
2017-12-15 22:31:10 -06:00
DrChat 8cabc114e9 [GPU] Properly track the packets leading up to a swap command 2017-12-15 22:01:50 -06:00
DrChat 829f346dc2 Axe a few unused functions from TraceDump 2017-12-15 20:33:12 -06:00
DrChat aaf281351d Format all code with new clang-format 2017-12-14 20:44:43 -06:00
DrChat 02e37be4e5 Merge branch 'linux' of git://github.com/dougvj/xenia into linux
# Conflicts:
#	.travis.yml
2017-12-14 19:20:02 -06:00
DrChat a7b6d91a2b [SPIR-V] (untested) Implementation of getGradients 2017-10-01 18:59:54 -05:00
scribam b6e7e66fbe Fix travis LINT 2017-09-20 23:29:39 +02:00
DrChat e674c9df26 Vulkan: Emit a warning when attempting to use a texture in an unsupported way 2017-09-07 14:37:05 -05:00
DrChat f9d08888c7 Vulkan: ClearCache for texture cache, properly free all textures and allocator on exit. 2017-09-07 14:22:04 -05:00
DrChat 1358b94f4d Fix lint errors :) 2017-09-03 20:02:45 -05:00
DrChat 121a2d655a Vulkan: Properly support depth writes (or blit depth images if able) 2017-09-01 18:32:55 -05:00
DrChat 4e4a1a03c1 Vulkan: Add a memory allocator and hook it up to the texture cache. 2017-08-20 20:48:36 -05:00
DrChat 7e819a4ccb Vulkan: Refactor CTX1 conversion 2017-08-20 18:37:02 -05:00
DrChat 1eac03a11c GPU: The base format of *_EXPAND textures is *_FLOAT 2017-08-19 21:10:53 -05:00
DrChat e758e87587 Trace Viewer: Display texture info even if the demand failed
Display format name as well
2017-08-19 20:56:13 -05:00
DrChat 57ffee0d8c GPU: Add name strings for all texture formats 2017-08-19 20:55:29 -05:00
DrChat 96ba5d5563 Vulkan: Set the depth/stencil attachment flag bit for depth/stencil textures. 2017-08-19 18:34:32 -05:00
Dr. Chat 2f200f4a75 Vulkan: Reformat the texture config table to look nicer 2017-08-14 00:32:40 -05:00
Dr. Chat 657d571c0d Vulkan: Update a couple of comments on texture formats 2017-08-13 21:32:57 -05:00
DrChat 3d0cbe50b9 Vulkan: Use GetBaseFormat in TextureFormatIsSimilar 2017-08-13 19:08:38 -05:00
Dr. Chat 22575af212 Fix AMD crashes from last commit 2017-08-10 23:24:32 -05:00
DrChat 4809f3eb51 Vulkan: Create a util WritebackTexture function (unused atm) 2017-08-10 15:01:12 -05:00
DrChat 09c29bbdc5 Vulkan: Search by a texture's base format when fetching. 2017-08-09 22:27:41 -05:00
DrChat 63576aec35 Vulkan: Add debug code to flag empty texture uploads in the log 2017-08-09 22:26:56 -05:00
AllanCat 79b9efb777 GL4: Fix HostTextureInfo setup. 2017-08-09 10:07:15 -05:00
gibbed f8edc761fc Vulkan: Do near-exact lookups for the frontbuffer texture (may break everything). 2017-08-09 02:28:47 -05:00
gibbed 4c77616ef9 Vulkan: Suppress some warnings from validation layer. 2017-08-09 01:15:33 -05:00
DrChat bea607b454 Vulkan: Apply a half-pixel offset where necessary. 2017-08-09 00:48:53 -05:00
gibbed 082c767fba Add the currently active graphics system to the window title. 2017-08-09 00:40:44 -05:00
DrChat 8b5eb1cd38 Vulkan: Remove redundant format argument from DemandResolveTexture 2017-08-09 00:10:52 -05:00
gibbed b14dc3351c GPU: Make 1D textures into 2D ones. 2017-08-08 17:58:11 -05:00
gibbed 1570dcd24c Vulkan: 32_32_32_32 had wrong unsigned format. 2017-08-08 16:51:19 -05:00
gibbed 90b8f983d0 - Vulkan: DXT1_AS_16_16_16_16 should probably map to VK_FORMAT_BC1_RGBA_UNORM_BLOCK.
- Vulkan: Added comments regarding CTX1 format.
2017-08-08 16:47:16 -05:00
gibbed 42533d39eb Vulkan: Assume all 1D texture sampling is actually sampling a 2D texture. 2017-08-08 16:35:19 -05:00
gibbed 355d9f6c62 Take three? 2017-08-08 02:10:22 -05:00
gibbed 3aa5a70827 Take two? 2017-08-08 01:49:53 -05:00
gibbed 19627a6cb2 GPU: Cast various flags to bool in IssueCopy. Fixes #773. 2017-08-08 01:46:21 -05:00
gibbed 4a95862023 GPU: Ensure texture resolves are at least 1x1. 2017-08-08 01:39:42 -05:00
gibbed d2d8d65629 GPU: First pass of CTX1 to R8G8_UINT conversion implementation for Vulkan. 2017-08-08 00:26:40 -05:00
DrChat ee18d548c9 Vulkan: Do not bind a NULL pipeline even if a full update is requested. 2017-08-08 00:11:08 -05:00
DrChat 0720bbe19f Vulkan: Fix race crash in trace viewer 2017-08-07 23:35:17 -05:00
DrChat cce5182725 Vulkan: Fix swap on resolve (off by one!)
Clean up part of IssueCopy
2017-08-07 23:34:50 -05:00
DrChat 35e4431c33 Vulkan: Get rid of the empty descriptor set 2017-08-07 21:46:35 -05:00
DrChat 8bfe22bbd7 GPU Shader Translator: Add cases for memexport registers 2017-08-07 21:40:24 -05:00
DrChat cfc65a0197 GPU: Rewrite/rephrase some confusing shader translator code 2017-08-07 21:08:01 -05:00
gibbed 6d9a56a269 GPU: Fixed texel pitch calculation for linear textures. 2017-08-07 20:50:42 -05:00
gibbed febe46973f GPU: Don't use host write bit for texture uploads. 2017-08-07 19:47:17 -05:00
gibbed b4ae5b9a01 - GPU: Removal of deprecated TextureInfo fields.
- GPU: Replicated removed deprecated fields into local struct for GL.
- GPU: Improved texture copies for Vulkan, no more pitch changes.
- GPU: Stubbed code for CTX1 conversion in Vulkan.
2017-08-07 19:30:06 -05:00
gibbed 906f24cb1a GPU: Make the format info table 64 statically elements again. 2017-08-07 19:13:02 -05:00
DrChat 2ba0ebb4cb GPU: Add back k_1_REVERSE 2017-08-06 16:55:02 -05:00
gibbed bd58191239 Moved format info table to its own file to maintain formatting. 2017-08-06 14:13:19 -05:00
gibbed 5ce29dbe1c Format info table was off by one this whole time. Who knew? 2017-08-06 13:58:37 -05:00
gibbed 791f81c484 Prettify format info table. 2017-08-06 13:57:13 -05:00
DrChat eb022939d1 Vulkan: Initialize a texture's framebuffer to nullptr 2017-08-06 12:47:34 -05:00
AllanCat 7ad6fc92f6 Fixed white edge on some textures(text display). 2017-07-19 23:18:49 +08:00
AllanCat c47d12875c Fixed Vulkan's dark color issue. 2017-07-19 15:06:29 +08:00
Doug Johnson b65c7e6297 vulkan: render_cache: More clang compilation fixes 2017-07-11 11:47:24 -06:00
sephiroth99 7ede34b593 vulkan: render_cache: fix clang compilation 2017-07-11 11:47:24 -06:00
Doug Johnson bb0ee0e4a3 Change glsl lang call that supports scalar rather than vector 2017-07-11 11:47:24 -06:00
Doug Johnson be3615b15b Add missing include <vector> 2017-07-11 11:47:24 -06:00
Doug Johnson 48a2435bde Add header dependencies that prevented linux build
There were several files with dependancies on vector and cmath that
caused compiler errors under linux. In addition, there was a printf
formatting error that threw a compiler error as well
2017-07-11 11:47:24 -06:00
Dr. Chat 283b7bc1b4 GPU: Change ReadRegister/WriteRegister constants to be consistent with other numberings. 2017-07-04 20:47:22 -05:00
Thomas Mccaffery fb51148b03 Added GPU Register Definition
Added 0x1924 = 0x6490 according to this referenced here https://www.x.org/docs/AMD/old/RRG-216M56-03oOEM.pdf as DC_LUT_PWL_DATA.
2017-06-12 02:48:51 -04:00
Dr. Chat 9dc740dcc0 GraphicsSystem: Properly support register file reads/writes, and fill in some unknown registers 2017-06-11 13:00:31 -05:00
Dr. Chat 6ab4bac542 Xenos: Fill in some of the unknown primitive types. 2017-06-10 20:09:03 -05:00
Parker Lamb 8ae737aaa5 Added GPU register definitions. 2017-06-06 21:45:41 -05:00
Dr. Chat 4e6a51472d Vulkan: Fix cube image initialization 2017-05-17 05:39:16 -05:00
Dr. Chat 84758a3a3f Vulkan CP: Use the color blitter 2017-05-13 10:15:56 -05:00
Dr. Chat ab1690b0b1 Fixing formatting errors. 2017-04-08 12:46:52 -05:00
Dr. Chat b40d75aa3d TextureInfo: Store the texture format, not a pointer to texture format info. 2017-04-07 15:16:09 -05:00
Cesys 8c4ca35a35 Ringbuffer init fix 2017-03-25 20:00:48 -07:00
Dr. Chat 92a4b90ed0 TextureInfo: Use round_up rather than floating point math for calculating tile width. 2017-03-19 20:20:43 -05:00
Dr. Chat 78433f70bd Vulkan CP: Supply the correct endianness to resolve TextureInfo 2017-03-16 01:55:07 -05:00
Dr. Chat b4c4ad4e76 SamplerInfo: Add LOD bias and border color 2017-03-14 23:33:22 -05:00
Dr. Chat b34350e9e7 TextureCache: Remove distinction between resolve textures and regular textures. 2017-03-14 23:18:53 -05:00
Dr. Chat 4a815e62cb TextureInfo: PrepareResolve, Reorganize source, add better documentation 2017-03-14 22:46:47 -05:00
Dr. Chat 581875b339 SPIR-V: Load operands after handling predicated blocks. 2017-03-14 21:41:50 -05:00
Dr. Chat e4ece12371 BufferCache: Clear the transient cache when invalidated. 2017-03-14 19:07:28 -05:00
Dr. Chat 44e7c3712a Vulkan: Fix register constants on AMD 2017-03-14 00:50:49 -05:00
Dr. Chat 5f5dc61428 Vulkan CP / Render Cache: Proper synchronization barriers for transfer
Use an event rather than a semaphore for swap
Update some calculations in IssueCopy TextureInfo
2017-03-13 18:03:33 -05:00
Dr. Chat 0c2e0e4119 RenderCache: Update to register bitfield structs 2017-03-13 17:54:41 -05:00
gibbed e3552a0601 Temporary hack for swaps until better texture info building can be implemented. 2017-03-12 22:03:20 -05:00
gibbed 8dbf3d240b Make the previous commit slightly more performant. 2017-03-12 01:15:43 -06:00
gibbed 69b92c6c31 Maybe fix texture uploads where mipmaps are packed in linear textures. 2017-03-12 01:12:02 -06:00
Dr. Chat 284aa14a67 Update a few Xenos enums/structs 2017-03-12 01:05:34 -06:00
gibbed 5875b79cc4 Compressed textures apparently don't have to have a height multiple of 32 either. 2017-03-11 23:40:43 -06:00
gibbed c0ee30c6b4 Linear textures apparently don't have to have a height multiple of 32. 2017-03-11 22:56:17 -06:00
Dr. Chat f87e55d030 Textures: Untiled textures do not need to have a size multiple of 32 2017-03-11 20:58:12 -06:00
Dr. Chat 3046df2415 SPIR-V: Go to next instr if cexece did not execute and is not the last instruction. 2017-03-07 12:25:36 -06:00
Dr. Chat b661aa17f9 SPIR-V: Handle conditional exece CF instructions 2017-03-06 15:39:40 -06:00
Dr. Chat 76f6aa7c90 Xenos: Add a few bitfield registers to registers.h 2017-02-22 16:17:03 -06:00
Dr. Chat f12d795a9f Linting fix 2017-02-17 23:38:21 -06:00
DrChat c62c4fe741 Vulkan: Properly invalidate resolve textures
Trace Writer memory caching
2017-02-17 18:59:08 -06:00
DrChat 070e7bf33d TraceDump: Support capturing Vulkan traces 2017-02-15 01:59:26 -06:00
DrChat 4a99b88650 Vulkan: Fill unused descriptor array elements with a dummy image (required by API) 2017-02-13 14:46:24 -06:00
Dr. Chat 75b34b83a6 Vulkan: Alias all input textures on the same binding 2017-02-13 13:35:53 -06:00
DrChat 7a9c33fcfe Vulkan: Emit a warning if the physical device is unable to support texture cache requirements 2017-02-12 21:24:38 -06:00
DrChat 4ee16fd193 Vulkan UI: Fix invalid push constant usage in immediate.frag/vert (and update shaders) 2017-02-12 18:47:53 -06:00
DrChat 1c48b93ffd Vulkan: Fix misplaced break statements 2017-02-11 21:53:52 -06:00
Vlad Ivanov bb9a26702d gpu: spirv_shader_translator: xb format changes 2017-02-07 21:24:06 +03:00
Vlad Ivanov d6bd1a9d21 gpu: trace_viewer: fix size_t format specifiers 2017-02-07 21:23:51 +03:00
Vlad Ivanov c74b84a18b gpu: spirv_shader_translator: fix a number of missing VertexFormat cases 2017-02-07 20:26:08 +03:00
Vlad Ivanov 091c196fc7 gpu: spirv_shader_translator: add missing cfloat include 2017-02-07 20:26:08 +03:00
Vlad Ivanov f0ba717142 Fix a bunch of missing cmath includes
...as well as missing std:: namespace specifiers
2017-02-07 20:26:08 +03:00
Dr. Chat b66f10f2b8 Testing travis xenia powerpc testing 2017-02-06 00:40:06 -06:00
Dr. Chat 8c79051a94 Vulkan: Add basic one-frame cache to BufferCache 2017-01-29 00:24:31 -06:00
Dr. Chat d9b52d1afa GPU: Add a "low-power" state. 2017-01-28 20:59:41 -06:00
Dr. Chat c5487371f9 Uh... Linting! 2017-01-28 14:12:30 -06:00
Dr. Chat 366eeeaa60 Vulkan TextureCache: Use a hashed and fenced pool for descriptors 2017-01-28 14:05:42 -06:00
Dr. Chat 90b0541d72 Vulkan CP: Code refactoring 2017-01-28 14:05:42 -06:00
Dr. Chat c416cbb61d Vulkan CP: Specify wait stage for swap sync 2017-01-28 14:05:42 -06:00
Dr. Chat 9135b6d9ac Vulkan: Support accessing only depth buffer via shaders 2017-01-28 14:05:42 -06:00
Dr. Chat ba74667190 Vulkan: Initialize RenderPassCreateInfo flags variable to 0. 2017-01-28 14:05:42 -06:00
Dr. Chat 16fc719b14 Vulkan: Passthrough unused point size/coord in geometry shaders 2017-01-28 14:05:42 -06:00
Dr. Chat 9f5abb02b7 Vulkan: Fix improper subpass dependency when using the MAY_ALIAS bit 2017-01-14 18:04:05 -06:00
gibbed a95de67b8c 1D textures. Maybe. 2017-01-10 00:04:41 -06:00
Dr. Chat ca54f9f212 SPIR-V: Whoops, flip the store operands around correctly 2016-11-22 21:36:39 -06:00
Dan Weatherford 6f6e638f2f [vulkan] Point list rendering improvements
Implement register and vertex-shader-written point size. Fix point size
computation in geometry shader (convert pixel size to NDC scale using
viewport size). Fix point sprite coordinate generation.
2016-11-12 18:03:03 -06:00
Dan Weatherford c1db89b4dd Eliminate double lock of Vulkan queue mutex 2016-11-11 23:07:49 -06:00
Dr. Chat 02a0d11326 SPIR-V: GetWeights2D/1D as well as (possibly) proper fetch offsets 2016-11-11 17:52:15 -06:00
Dr. Chat 1afb899b7d Also track batch fences in the CP properly 2016-11-08 19:41:35 -06:00
Dr. Chat 48f6ba747c Track batch fences with the batches. 2016-11-08 18:11:12 -06:00
Dr. Chat 69be82c786 Attempt at synchronizing swap image writes between the main window and graphics backend.
Disabled for now due to device timeouts.
2016-10-21 19:44:11 -05:00
Dr. Chat 26d81abf52 IssueDraw failing in the backend does not mean we need to stop processing commands 2016-10-21 18:14:24 -05:00
Dr. Chat 9457c63a64 SPIR-V: Handle conversion of integer vertex input 2016-09-07 11:13:53 -05:00
Dr. Chat 1757411aa8 Label blocks following jump statements for now. 2016-09-05 22:19:56 -05:00
Dr. Chat 300d1c57ba SPIR-V: Rewrite basic control-flow to use a while loop paired with a switch statement 2016-09-05 16:57:02 -05:00
Dr. Chat fbedb915b6 Move definition of XEPACKEDSTRUCT to platform.h 2016-08-22 17:23:50 -05:00
Dr. Chat 784e6a7593 RenderCache: Include a subpass self-dependency due to aliased attachments 2016-08-16 13:11:25 -05:00
Dr. Chat 04afa31c9c Be linted, you. 2016-08-04 15:15:23 -05:00
Dr. Chat 40f782a83b Add a null graphics system (enable with --gpu=null)
Still uses vulkan to drive xenia UI, may look into decoupling later.
2016-08-04 09:50:13 -05:00
Dr. Chat a7e4bc8f49 Applying graceful linting. 2016-08-01 16:36:41 -05:00
Dr. Chat 99090e0a22 CircularBuffer: Allow users to bind their own memory to our buffer. 2016-08-01 16:30:28 -05:00
Dr. Chat ff57d79793 TextureCache: Flush uploads if the staging buffer overflows in a frame. 2016-08-01 13:25:44 -05:00
Dr. Chat cd5d3fae9c Whoops - fix a few compilation errors 2016-07-29 13:42:56 -05:00
Dr. Chat a547c79b51 SPIR-V: Use gl_VertexIndex rather than gl_VertexID
Rewrite bits of LoadFromOperand/StoreToResult
2016-07-29 11:28:19 -05:00
Dr. Chat 6af8546c49 Vulkan: Remove unused gl_ClipDistance from shaders 2016-07-28 12:02:49 -05:00
Dr. Chat 99689176bc Vulkan: Fix a few validation errors 2016-07-28 00:15:23 -05:00
Dr. Chat 19c7edddca PipelineCache: _FLOAT means use vk _SFLOAT, not _*SCALED! 2016-07-25 12:06:50 -05:00
Dr. Chat 91be5f979e Use a dummy pixel shader on depth-only mode 2016-07-24 15:38:00 -05:00
Dr. Chat b478408dfb PipelineCache: Better stencil support, and allow null pixel shaders. 2016-07-24 15:36:41 -05:00
Dr. Chat 9e646085f0 SPIR-V: Rudimentary support of tfetch offsets, fix scalar operand loads 2016-07-24 10:16:44 -05:00
Dr. Chat 99d2b2fb55 Trace Viewer: Add stencil information and color/depth format translations 2016-07-23 22:23:25 -05:00
Dr. Chat abdf071c7d SPIR-V: Smear one-component scalars 2016-06-28 11:43:03 -05:00
Dr. Chat 14a6fd838a SPIR-V: Fix a few improper usages of pointers
Change StoreToResult conversion
2016-06-28 09:18:08 -05:00
Dr. Chat 75908a9865 SPIR-V: Fix a couple of errors in translation 2016-06-27 11:08:45 -05:00
Dr. Chat 212cd6ee3d GPU: Log a warning on writes to unknown registers. 2016-06-25 10:32:48 -05:00
Dr. Chat b31705c543 Registers 0x5000-0x5002 2016-06-25 10:26:39 -05:00
Dr. Chat 70b2d09834 PA_CL_UCP_* registers 2016-06-24 14:44:51 -05:00
Dr. Chat ab4245c6af VGT_INDX_OFFSET actually means index/vertex offset
Fixup depth resolves
2016-06-24 14:35:24 -05:00
Dr. Chat 036df2ce12 SPIR-V: Remove GenericPointer capability requirement 2016-06-24 07:48:02 -05:00
Dr. Chat 35d8bfeb82 Merge branch 'dump' of git://github.com/sephiroth99/xenia into seph-dump 2016-06-23 17:58:02 -05:00
Dr. Chat 076c73be9a SPIR-V: GetTextureWeights and Cube op 2016-06-22 19:34:05 -05:00
sephiroth99 7bf2f23bef Dump shaders in binary mode
Use binary mode when writing shaders to file, so that 0x0a is not
considered a LF and then converted to CRLF.
2016-06-21 23:05:19 -04:00
Dr. Chat 6729ec182b These clears are redundant. 2016-06-19 21:32:31 -05:00
Dr. Chat f194d261b1 TextureCache: Speed up descriptor writes (no more vector usage)
WIP TextureCube uploading skeleton
2016-06-19 21:27:30 -05:00
Dr. Chat 6bd19518eb GL4: Fix incorrectly calculating the base offset for IssueCopy 2016-06-18 21:16:10 -05:00
Nukem d5dd96d626 Invalid iterator in control_flow_simplification_pass 2016-06-18 16:34:46 -04:00
Dr. Chat d526d2febf GPU: In auto-indexed draws, VGT_INDX_OFFSET appears to be reused as a vertex offset. 2016-06-17 20:19:38 -05:00
Dr. Chat 27c16b1936 GPU: Fix incorrectly calculating the primary ringbuffer's size 2016-06-16 21:30:06 -05:00
Dr. Chat af870999fa SPIR-V: Clear shader interface IDs between invocations. 2016-06-13 18:15:59 -05:00
Dr. Chat 5937e603d7 SPIR-V: Fix vec4 Dst 2016-06-13 15:29:07 -05:00
Dr. Chat 7ef7cc39f5 SPIR-V: Declare all inputs/outputs in OpEntryPoint 2016-06-12 11:18:00 -05:00
Dr. Chat 841f6fe239 Merge branch 'vulkan' 2016-06-11 19:23:23 -05:00
Dr. Chat b01903ccc7 Set basePipelineIndex to -1 instead of 0 to indicate invalid. 2016-06-05 12:55:19 -05:00
Dr. Chat 6f5f3534c4 Rebuild shaders with the latest compiler 2016-06-04 15:17:31 -05:00
Dr. Chat 254acf2a67 RenderCache: Hardcode surface height to 2560
Fix a couple of other things
2016-06-03 20:01:49 -05:00
Dr. Chat 2a924d2b05 Pass vertex buffer endianness into the BufferCache
IssueCopy: Actually issue the pipeline barrier to transition the image
2016-06-03 20:00:28 -05:00
Dr. Chat f8d9472872 TextureCache: Fix trying to erase a resolve texture that isn't in the resolve textures list. 2016-05-26 14:46:18 -05:00
Dr. Chat c85756981b TextureCache: Fix a few null pointer bugs
Ordering of in-flight descriptor sets
Change staging buffer size
Free all samplers on exit
2016-05-25 19:55:50 -05:00
Dr. Chat 8611417219 Initialize rasterDiscardEnable to VK_FALSE 2016-05-25 17:45:38 -05:00
Dr. Chat 008167fa66 VK: Enable full rotation / Set render_state to nullptr on failure / Fix format info in texture resolves 2016-05-25 13:49:36 -05:00
Dr. Chat 9d1e66ab16 Don't write to color targets in depth-only mode. 2016-05-24 21:58:02 -05:00
Dr. Chat 5f764730ae Vulkan CP: Override frame traces if renderdoc is attached 2016-05-23 13:16:13 -05:00
Dr. Chat 7004f83665 CP: Don't check for shader validity here
Fix a lousy typo in PrepareTextureSet
2016-05-22 20:08:35 -05:00
Dr. Chat bd27835a3d Pipeline Cache: Translate shaders when program cntl register is available 2016-05-22 20:03:13 -05:00
Dr. Chat d1b4d61b52 SPIR-V: Use the register count from the program control register
Workaround for broken OpBitFieldUExtract on NVIDIA drivers
kRcpc/kRcpf/kRsqc/kRsqf
Fix broken ps_ usage
2016-05-22 20:01:42 -05:00
Dr. Chat d94ff6eb25 Shaders: Track the register count from the program control register (if available) 2016-05-22 19:58:50 -05:00
Dr. Chat 1faf5a813a Fix ALU scalar swizzles (Possibly) 2016-05-22 19:57:05 -05:00
Dr. Chat b025790207 Disable Vulkan native MSAA by default for now. 2016-05-17 05:58:52 -05:00
Dr. Chat 2bb52ef86b SPIR-V: WIP shader compiler / optimizations / alpha test implementation 2016-05-15 12:01:38 -05:00
Dr. Chat 79f1193130 Vulkan CP: Fix calculating an invalid copy destination base address when sizeof(texel) != 4 2016-05-06 00:12:47 -05:00
Dr. Chat 7c5042add7 Vulkan CP: Add in separate swap-chain images
Some other changes I can't remember
2016-05-03 14:12:05 -05:00
Dr. Chat f2af28c322 TextureCache: Fix up some synchronization flaws (deleting in-use textures/etc)
Fix texture binding IDs not matching fetch instruction IDs.
Fix some bad texture format matching.
Add access watches
2016-05-03 14:10:15 -05:00
Dr. Chat 8e8df2e778 PipelineCache: Support shader disasm dumps for nvidia cards.
Fix MSAA 2X multiplier.
2016-05-03 14:07:20 -05:00
Dr. Chat d18c99aab6 RenderCache: Account for MSAA when calculating tile sizes.
Add a new flag to enable native MSAA (this does not work properly at the moment)
2016-05-03 14:05:34 -05:00
Dr. Chat aa038fbf23 Skip the wrapping packet end after parsing IB end (to avoid false draws appearing) 2016-05-01 15:48:31 -05:00
Dr. Chat 720f8b0dc2 GL4: Track the internal format of render targets and match them based on that. 2016-05-01 11:23:54 -05:00
Dr. Chat cbccc785cc TraceViewer: Build a tree of all command buffers and display that instead of a flat list. 2016-05-01 10:15:33 -05:00
Dr. Chat 9b2e2a7275 SPIR-V: Hack in OpSelectionMerge as hints to NVidia's shader compiler (TODO: Make a Shader Compiler) 2016-04-13 23:17:03 -05:00
Dr. Chat 4811ebc2ce BufferCache: Use a CircularBuffer as the transient buffer. 2016-04-09 21:27:32 -05:00
Dr. Chat b7f2c93d73 SPIR-V: Batch predicated instructions together into a single block.
Add Post-Translation validation.
Fix a couple of type-related typos.
2016-04-09 21:03:44 -05:00
Dr. Chat 3726064af5 Can't use CmdCopyBufferToImage or vice versa for depth and stencil. 2016-04-01 22:03:29 -05:00
Dr. Chat 50f72b4e42 Enable native MSAA
Copy back EDRAM buffers in order by base offset.
2016-04-01 21:52:39 -05:00
Dr. Chat 2eca3ce9e6 Texture uploads/basic formats
Fixed swizzle one/zero mismatch
Sampler setup
Remove samplers from the descriptor set layout
2016-04-01 21:51:17 -05:00
Dr. Chat 44cffab389 SPIR-V Max4 2016-03-25 18:23:45 -05:00
Dr. Chat fc1bd0f379 Fix texture uploads 2016-03-25 17:29:39 -05:00
Dr. Chat 692d666d57 Wipe the buffer cache in ClearCache for now. 2016-03-25 16:50:06 -05:00
Dr. Chat 0e44cda961 Update the rectangle list shader 2016-03-25 16:49:41 -05:00
Dr. Chat a5a31cf123 VulkanShader::Prepare - return false if vkCreateShaderModule failed. 2016-03-25 16:37:24 -05:00
Dr. Chat f75e5fec24 CP: Use a single command buffer for every frame, reuse render passes/pipelines if not dirty
Hook up resolves and swaps
2016-03-25 16:35:34 -05:00
Dr. Chat 1e1da1eb6c PipelineCache::ConfigurePipeline - Inform the caller if the pipeline is dirty or they can reuse the previously bound pipeline.
Make SetDynamicState public.
2016-03-25 16:34:14 -05:00
Dr. Chat b2457d7e72 Basic texture uploads/address lookups/etc
Freeing of descriptor sets when the GPU is finished with them.
2016-03-25 16:32:29 -05:00
Dr. Chat 0e41774e36 RenderCache::dirty() - used to tell if we need to begin a new pass
Round all pixel pitch/heights up before dividing.
2016-03-25 16:31:12 -05:00
Dr. Chat e72e283e79 Primitive type makes rasterization state dirty too! 2016-03-23 16:20:06 -05:00
Dr. Chat 7b962e59a4 SPIR-V Dst
Fix a few bugs in the translator
2016-03-20 14:21:55 -05:00
Dr. Chat 38b94dd9e2 Add in Xenos events 2016-03-17 21:58:23 -05:00
Dr. Chat 0e3c113375 Physical write watches -> access watches (read and/or write watching) 2016-03-17 21:55:16 -05:00
Dr. Chat 1831e7a936 Pipeline stencil state 2016-03-16 14:45:40 -05:00
Dr. Chat 54f89825d9 SPIR-V Dp2Add/Dp3 2016-03-15 00:30:39 -05:00
Dr. Chat 245102e9e5 RenderCache::BlitToImage 2016-03-12 22:04:32 -06:00
Dr. Chat 822d61c3d9 Fix a few stale data usage bugs in the pipeline cache.
Hook up part of depth/stencil tests/writes
2016-03-12 22:03:11 -06:00
Dr. Chat 5ba04b9e55 RenderCache::ClearEDRAMColor/ClearEDRAMDepthStencil 2016-03-12 11:49:59 -06:00
Dr. Chat 635d095b87 RenderCache: Track color target / depth target usage, refactor RawCopyToImage 2016-03-10 20:39:46 -06:00
Dr. Chat f903a559b3 Blit Vulkan CP output to the main window's swap chain 2016-03-10 13:01:39 -06:00
sephiroth99 90b54bbaa6 Fix usage of mix in fragment shader
The boolean value must be a vector too, where each bool component
selects whether the value of the output vector component is from the
first or the second source vector.
2016-03-10 01:14:42 -05:00
Dr. Chat 86cb40f0c6 Change how the render cache renders into EDRAM.
Rendering directly into the EDRAM buffer is bad because we don't know how the GPU lays out memory when it draws. Instead, we create temporary render targets and copy EDRAM contents to/from those temporary RTs before and after each draw.
2016-03-08 18:02:03 -06:00
Dr. Chat 4e27539709 Fix Vulkan texture drawing. 2016-03-08 17:57:04 -06:00
Dr. Chat af7fc20c38 Beginnings of texture conversion/uploads 2016-03-05 22:09:18 -06:00
Dr. Chat 38094ac819 Updated local clang-format. 2016-03-02 21:17:34 -06:00
Dr. Chat 740c70f270 Scalar logc, fix log 2016-03-01 12:52:34 -06:00
Dr. Chat 48cf270724 Use spv::NoPrecision instead of DecorationInvariant
Set samplers/images as uniform constants
2016-02-27 16:21:37 -06:00
Dr. Chat c648e54539 Short-circuit draw calls if the render target's pitch is 0 2016-02-27 11:30:50 -06:00
Dr. Chat 6109e0b03a Fix incorrect images/samplers definitions
ps_param_gen and fix interpolators being copied incorrectly
2016-02-25 17:41:41 -06:00
Dr. Chat 08a287d2ad Whoops 2016-02-21 22:30:31 -06:00
Dr. Chat 06d5a28615 Fix texture fetches 2016-02-21 22:27:23 -06:00
Ben Vanik 5e31c51a3d Textures are now in descriptor set 1. 2016-02-21 20:03:51 -08:00
Ben Vanik 3b20c757ff Merge branch 'vulkan' of github.com:benvanik/xenia into vulkan 2016-02-21 19:56:30 -08:00
Ben Vanik 62931f8c8e Adding texture setup and a dummy grid texture. 2016-02-21 19:56:23 -08:00
Dr. Chat 8a29330f8c First-pass image sampling 2016-02-21 20:42:37 -06:00
Dr. Chat 2785a94fea SetpXXPush 2016-02-21 19:20:53 -06:00
Dr. Chat 9030c87386 SetpPop/SetpRstr 2016-02-21 19:20:53 -06:00
Dr. Chat 5c2b5123ac Floors/Frcs/Truncs 2016-02-21 19:20:53 -06:00
Dr. Chat 0680e451bc Exp2 2016-02-21 19:20:53 -06:00
Dr. Chat cbac9b2f4e Use vec4 zero rather than float zero where needed 2016-02-21 19:20:53 -06:00
Dr. Chat 13049912ee Vec Log 2016-02-21 19:20:53 -06:00
Dr. Chat 1d4190af02 MaxA 2016-02-21 19:20:53 -06:00
Dr. Chat 568845e81d Dp4 2016-02-21 19:20:53 -06:00
Dr. Chat 3877afe90a MaxAsf 2016-02-21 19:20:53 -06:00
Dr. Chat d217f7b3c3 MaxAs/SetpClr 2016-02-21 19:20:53 -06:00
Dr. Chat fa3ca4a5d7 Short-circuit if the store has no writes. 2016-02-21 19:20:53 -06:00
Dr. Chat d2e3b5533d Whoops 2016-02-21 19:20:53 -06:00
Dr. Chat 9b805b929e Scalar kill ops 2016-02-21 19:20:53 -06:00
Dr. Chat e78537571f Vector kill ops 2016-02-21 19:20:53 -06:00
Dr. Chat 633746b5e4 Actually preserve pv/ps if predicate fails 2016-02-21 19:20:53 -06:00
Ben Vanik cda08ff826 Setup descriptor set for textures. 2016-02-21 17:17:57 -08:00
Ben Vanik 1def5bece9 Fix viewport inversion. 2016-02-21 15:59:35 -08:00
Ben Vanik ace895d4f3 Fixing 1/w0 correction. 2016-02-21 15:44:09 -08:00
Ben Vanik 24743bf676 Actually configure constant descriptor set. 2016-02-21 15:20:35 -08:00
Ben Vanik d57f974e2e Fix buffer alloc alignment and framebuffer comparison. 2016-02-21 14:43:59 -08:00
Ben Vanik 8bf5eba098 Capture exe with renderdoc and pass --vulkan_renderdoc_capture_all. 2016-02-21 12:44:16 -08:00
Dr. Chat b83b9c28a1 Fix push constants declaration 2016-02-21 13:19:08 -06:00
Dr. Chat bd0fb81b22 Apply window scaling 2016-02-21 12:46:54 -06:00
Ben Vanik b3faba50a3 Pushing constants. 2016-02-21 10:38:58 -08:00
Dr. Chat 71440a4137 Add code to correct vertex format
Move translated shader code to its own function
Add push constants
2016-02-21 12:06:59 -06:00
Dr. Chat b1e56ee4e5 Vector Cndxx 2016-02-20 23:45:01 -06:00
Ben Vanik ff373a83a4 Private->Function variables, fragment output, geometry shader tweaks. 2016-02-20 20:44:11 -08:00
Dr. Chat 2629ae4a14 Fix using incorrect result types for compares 2016-02-20 21:55:32 -06:00
Dr. Chat ca01bb2311 ALU predicated discard 2016-02-20 21:53:22 -06:00
Dr. Chat 08a173e5ec Scalar Sxxx 2016-02-20 21:28:25 -06:00
Ben Vanik cd02cdfc70 Making memory API less error prone; fixes buffer/constant uploads. 2016-02-20 19:19:29 -08:00
Dr. Chat 8777d22b72 Add name information to constants
Fix Rcp/Rsq OpSelect incorrect usage
2016-02-20 19:31:28 -06:00
Ben Vanik 1d82d7bd92 For now, all 512 constants live in the same block. 2016-02-20 17:05:53 -08:00
Dr. Chat 4aff1c19a7 (WIP) SPIR-V Shader Translator 2016-02-20 18:44:37 -06:00
Ben Vanik b5a0c4715b Porting GL4 geometry shaders. Likely not working. 2016-02-20 16:35:21 -08:00
Ben Vanik 5759f82276 Adding pipeline caching. 2016-02-20 15:00:11 -08:00