Commit Graph

4450 Commits

Author SHA1 Message Date
Brett Lawson
0e65717eb9 spirv: Fix BitfieldExtract being passed the wrong parameter types. 2018-10-17 02:35:32 -07:00
Brett Lawson
ca14222873 vulkan: Fixed issue with default color write masking. 2018-10-17 02:35:32 -07:00
Brett Lawson
2bf0291f4b vulkan: Added support for stencil buffers. 2018-10-17 02:35:31 -07:00
Brett Lawson
2faf541245 spirv: Handle stack indexes being handled incorrectly. 2018-10-17 02:35:31 -07:00
Brett Lawson
493d1b4918 vulkan: Improved surface handling substantially. 2018-10-17 01:18:58 -07:00
Brett Lawson
bd50928584 spirv: Fixed issue with uint4 shader outputs. 2018-10-17 01:18:58 -07:00
Brett Lawson
57a974aef0 vulkan: Correctly include disabled attachments in renderpasses.
It is important for shader compilation that attachements which are
disabled are still included in the renderpass.  They simply should
be marked as unattached.
2018-10-17 01:18:58 -07:00
Brett Lawson
4a716e1e00 gpu: Use SQ_TILE_TYPE instead of isDepthBuffer. 2018-10-17 01:18:58 -07:00
Brett Lawson
0d1013aa87 vulkan: Improved logging and reporting behaviours. 2018-10-17 01:18:57 -07:00
Brett Lawson
8aeea24d1b common: Added some platform-specific debugging functions. 2018-10-17 01:18:57 -07:00
Brett Lawson
3445ae68a2 vulkan: Fix sampler depth compares being enabled in error. 2018-10-17 01:18:57 -07:00
Brett Lawson
a03bc256a4 vulkan: Update compare texture reads to put 0 in W. 2018-10-17 01:18:57 -07:00
Brett Lawson
f509381cdd vulkan: Improved framebuffer attachment determination.
We previously did a poor job deciding whether or not a
particular framebuffer needed an attachment at a
particular location.
2018-10-17 01:18:57 -07:00
Brett Lawson
1c0787eb21 vulkan: Added support for surface copying. 2018-10-17 01:18:57 -07:00
Brett Lawson
d203a7cc83 vulkan: Added support for FETCH4 texture gathering. 2018-10-17 01:18:57 -07:00
Brett Lawson
6fc6585647 vulkan: Added support for integer-based framebuffers.
In order to write to an integer-based framebuffer, we must
actually have uint4 writes in the shader.  To do this, we
have to track what kind of buffer is bound, and pass this
through to the shader generator so it can generate the
appropriate writes.
2018-10-17 01:18:56 -07:00
Brett Lawson
dd8a30a0d1 vulkan: Fixed bug with type checking.
We have to be careful not to accidentally create dependencies
on types that we are not using, but in this case we are not
ever using the types (so they are still 0), but the system
itself gives them back, making the comparisons fail.
2018-10-17 01:18:56 -07:00
Brett Lawson
18028f1717 vulkan: Use framebuffer to decide renderArea instead of scissor. 2018-10-17 01:18:56 -07:00
Brett Lawson
8536638709 vulkan: Added renderPass to pipeline description.
This is required as the pipeline depends on data from
the renderpass and previously would sometimes crash due
to a missmatch at draw time.
2018-10-17 01:18:56 -07:00
Brett Lawson
6cbe5cf8ad vulkan: Fixed issue where some depth formats were depth capable. 2018-10-17 01:18:56 -07:00
Brett Lawson
ee8294325c vulkan: Changed shader dump code address to be hex. 2018-10-17 01:18:56 -07:00
Brett Lawson
a606086bb1 vulkan: Fixed an uninitialized variable. 2018-10-17 01:18:56 -07:00
Brett Lawson
111a25f872 vulkan: Implemented most of the texturing instructions. 2018-10-17 01:18:55 -07:00
Brett Lawson
57ebd7b797 vulkan: Fixed bswap8in16 to actually work with 16-bit integers. 2018-10-17 01:18:55 -07:00
Brett Lawson
aa5b61382d vulkan: Fixed register writes to be delayed on the ALU group.
Sometimes shaders are generated where earlier units write
to registers which are used in later units.  In these cases
the later unit should not be seeing the new register value
until after the ALU group.
2018-10-17 01:18:55 -07:00
Brett Lawson
3daf4911ed gx2: Fix issue where PS_INPUT was assigned incorrect ids.
This caused context save/load to fail to save the first
semantic index for each pixel shader input.
2018-10-17 01:18:55 -07:00
Brett Lawson
f7fccb9be9 vulkan: Added support for additional depth buffer formats. 2018-10-17 01:18:55 -07:00
Brett Lawson
4ddb99cb8d vulkan: Update drawing to cancel if it would be illegal.
This is important as some games do draws with missing attribute
buffers, which I expect would cause GPU7 to just fail.  But for
us causes vulkan to drop our device.
2018-10-17 01:18:55 -07:00
Brett Lawson
2e3bc73240 vulkan: Added support for CUBEMAP textures.
This CUBE instruction implementation may not be perfect.
There are some wierd behaviours we could not explain.
2018-10-17 01:18:55 -07:00
Brett Lawson
a3597f5aeb vulkan: Added a few more SPIRV operations. 2018-10-17 01:18:55 -07:00
Brett Lawson
30f8ded5ea vulkan: Fixed bug with some input attribute types. 2018-10-17 01:18:54 -07:00
James Benton
e489125536 spirv: Add support for POSITION_ENA aka FragCoord. 2018-10-17 01:18:54 -07:00
James Benton
84fb5f2220 spirv: Redo some of the loop stuff. 2018-10-17 01:18:54 -07:00
Brett Lawson
5ac3884eaa vulkan: Added basic support for looping in SPIRV generator. 2018-10-17 01:18:54 -07:00
Brett Lawson
355c58046e vulkan: Implemented support for uniform buffer based shaders. 2018-10-17 01:18:54 -07:00
Brett Lawson
d0d827407c vulkan: Fixed error in default value generation. 2018-10-17 01:18:54 -07:00
Brett Lawson
f72c8746fd vulkan: Implemented DOT4_IEEE for SPIRV generator. 2018-10-17 01:18:54 -07:00
Brett Lawson
a6b80afa4e vulkan: Correct error in cbuffer variable creation. 2018-10-17 01:18:54 -07:00
Brett Lawson
a30ffed27a vulkan: Improved depth bias handling. 2018-10-17 01:18:54 -07:00
Brett Lawson
5e85c4ca55 vulkan: Made equality-based alpha testing more resilient.
This was important as newer hardware does not guarantee
perfect precision, so equality tests would pass only
sometimes.
2018-10-17 01:18:53 -07:00
Brett Lawson
6520c43171 vulkan: Fix Z and Y corrections in SPIRV shaders. 2018-10-17 01:18:53 -07:00
Brett Lawson
6bc804d5c0 vulkan: Added support for rasterization logic ops. 2018-10-17 01:18:53 -07:00
Brett Lawson
5905faf1c9 vulkan: Implement polygon drawing modes. 2018-10-17 01:18:52 -07:00
Brett Lawson
e72750a215 vulkan: Added support for line widths. 2018-10-17 01:18:52 -07:00
Brett Lawson
e8a7c578ee vulkan: Only debug report if the extension is enabled. 2018-10-17 01:18:52 -07:00
Brett Lawson
889ed0926b vulkan: Fixed a bunch of ALU OP2's not using their second parameter. 2018-10-17 01:18:52 -07:00
Brett Lawson
7cdc6a6875 vulkan: Fix issue with SPIRV stack using wrong storage classes. 2018-10-17 01:18:51 -07:00
Brett Lawson
ae2a7d1bfd vulkan: Keep all staging buffers persistently mapped. 2018-10-17 01:18:51 -07:00
Brett Lawson
d70272bca1 vulkan: Added pooling of descriptor sets.
Pooling of descriptor pools wasn't per formant enough,
and our descriptor sets always look the same anyways.
2018-10-17 01:18:50 -07:00
Brett Lawson
0fda685916 vulkan: Added pooling of staging buffers. 2018-10-17 01:18:50 -07:00