436b7fab9e
* Adds UAV support for D3D12, Vulkan and reworked support for OpenGL, D3D11 UAV support is now uniform across compute and draw. To set a UAV you just use bgfx::setImage() and IMAGE2D in the shader, just like in compute. Due to these changes shaders will have to be recompiled. The changes include: - D3D11 requires patching of the UAV slot number (which is now done by modifying the DXBC instead of using a macro) - If the DXBC binary includes a debug chunk, that is also patched to match the new slot number - All the other renderers don't need any kind of patching - There are some shader annotations to better convert the UAV format used in hlsl to spirv Possibility of further enhancements: - bgfx::setViewFrameBuffer() only supports binding to a framebuffer or, using BGFX_INVALID_HANDLE, to bind the default backbuffer. This doesn't allow for the case where there is no need to bind to either one of them, for example when using a fragment shader only to read and write to an UAV. * Bump shader version, because they need to be recompiled. |
||
---|---|---|
.. | ||
common.sh | ||
deferred.cpp | ||
fs_deferred_clear_uav.sc | ||
fs_deferred_combine.sc | ||
fs_deferred_debug_line.sc | ||
fs_deferred_debug.sc | ||
fs_deferred_geom.sc | ||
fs_deferred_light_ta.sc | ||
fs_deferred_light_uav.sc | ||
fs_deferred_light.sc | ||
makefile | ||
screenshot.png | ||
varying.def.sc | ||
vs_deferred_combine.sc | ||
vs_deferred_debug_line.sc | ||
vs_deferred_debug.sc | ||
vs_deferred_geom.sc | ||
vs_deferred_light.sc |