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.
17 lines
334 B
Python
17 lines
334 B
Python
$input v_texcoord0
|
|
|
|
/*
|
|
* Copyright 2011-2020 Branimir Karadzic. All rights reserved.
|
|
* License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
|
|
*/
|
|
|
|
#include <bgfx_compute.sh>
|
|
|
|
IMAGE2D_RW(i_light, rgba8, 2);
|
|
|
|
void main()
|
|
{
|
|
ivec2 coord = ivec2(gl_FragCoord.xy);
|
|
imageStore(i_light, coord, vec4(0.0, 0.0, 0.0, 0.0));
|
|
}
|