Refresh/src
TheSpydog 297f234957
continuous-integration/drone/push Build is passing Details
Miscellaneous API changes + more MSAA fixes (#26)
**Breaking API Changes**
* Removed `REFRESH_SAMPLECOUNT_16/32/64`, since hardware support for these sample counts is generally poor (and completely non-existent with MoltenVK and certain consoles).
* Removed unused `sampleCount` parameter from `Refresh_TextureCreateInfo`.
* Removed `sampleCount` parameter from `Refresh_ColorAttachmentDescription`. The existence of this parameter meant you had to sync up three different sample count values (render pass, pipeline, and color attachment description) whenever you wanted to use multisampling. However, Vulkan requires that all color attachments in a given pipeline _must_ match the pipeline's sample count anyway, so we can assume all color attachments will use the pipeline's sample count.
* Removed the `renderArea` parameter from `Refresh_BeginRenderPass()` since it didn't serve much practical purpose and slightly complicated things on the MoonWorks managed side.

**Behavior Changes**
* When creating a render pass or graphics pipeline, the requested multisample count will be converted into a sample count that's actually supported by the GPU. For example, if you request 8x MSAA on a device that only supports up to 4x MSAA, it will silently fall back to 4x MSAA.
* All color attachments are now forced to have an internal store op of `STORE`, even if `REFRESH_STORE_OP_DONTCARE` is specified. The one exception is internal multisample textures -- if `DONTCARE` is used, those textures will be discarded to save on bandwidth. (Their resolve textures will still be stored.)
* The RenderPass hashing logic was updated so that it would still work correctly with the removal of `Refresh_ColorAttachmentDescription.sampleCount`.

**Bug Fixes**
* Fixed bugs where multisampling logic wasn't kicking in for certain sample counts due to incorrect enum comparisons.

Co-authored-by: Caleb Cornett <caleb.cornett@outlook.com>
Reviewed-on: #26
Co-authored-by: TheSpydog <thespydog@noreply.example.org>
Co-committed-by: TheSpydog <thespydog@noreply.example.org>
2022-11-08 19:09:21 +00:00
..
Refresh.c Miscellaneous API changes + more MSAA fixes (#26) 2022-11-08 19:09:21 +00:00
Refresh_Driver.h Miscellaneous API changes + more MSAA fixes (#26) 2022-11-08 19:09:21 +00:00
Refresh_Driver_Template.txt remove Clear and add pWidth and pHeight to AcquireSwapchainTexture 2022-03-10 10:21:49 -08:00
Refresh_Driver_Vulkan.c Miscellaneous API changes + more MSAA fixes (#26) 2022-11-08 19:09:21 +00:00
Refresh_Driver_Vulkan_vkfuncs.h add DrawPrimitivesIndirect + fix sync issues 2022-08-25 12:21:49 -07:00
Refresh_Image.c Rework Presentation Flow (#15) 2022-03-02 06:33:57 +00:00
miniz.h image load and save 2020-12-27 22:45:12 -08:00
stb_image.h image load and save 2020-12-27 22:45:12 -08:00
stb_image_write.h image load and save 2020-12-27 22:45:12 -08:00