Commit Graph

729 Commits

Author SHA1 Message Date
Бранимир Караџић
fab6e8409b Cleanup. 2021-11-01 18:53:06 -07:00
Бранимир Караџић
5fd83e7a41 Added BGFX_TEXTURE_BLIT_DST validation. 2021-11-01 18:27:20 -07:00
pezcode
9f3b3d38c5 Fix isTextureValid number of layers check (#2639) 2021-10-27 09:27:15 -07:00
Бранимир Караџић
932d2f21e7 Cleanup. 2021-10-27 08:17:41 -07:00
Бранимир Караџић
8392a44b3a Fixed assert macros, and improved error handling. 2021-10-25 18:59:32 -07:00
Бранимир Караџић
2d9e6e7f4f Added setTexture validation to check for read back texture. 2021-10-14 21:03:26 -07:00
Branimir Karadžić
46384208ad Define WIN32_LEAN_AND_MEAN if it's not defined when including windows.h. 2021-10-13 20:18:03 -07:00
Бранимир Караџић
73db386165 Added uniform name validation. 2021-09-30 17:24:36 -07:00
Бранимир Караџић
227ea05dee Fixed transient vertex buffer when vertex layout allocation fails. 2021-09-16 18:32:58 -07:00
Бранимир Караџић
ee0fbea726 Added AGC renderer stub. 2021-08-24 19:35:09 -07:00
Бранимир Караџић
e0d26507dc Added BGFX_CONFIG_ENCODER_API_ONLY configuration setting to enable/disable non-encoder API. 2021-06-11 08:05:58 -07:00
Бранимир Караџић
6baa370801 Fixed transient index buffer functions to all have 32-bit indices support, and removed 16-bit only restriction from docs. 2021-05-25 12:47:28 -07:00
Sebastian Marketsmueller
582dfc1e4c Fix texture validation logic (#2509)
* fix mip level computation for asmjs and add support for srgb textures in es2/webgl

* fix BX_TRACE in glcontext_html5.cpp

* fix wrong logic in texture validation

Co-authored-by: Sebastian Marketsmueller <sebastianm@hq.unity3d.com>
Co-authored-by: Vladimir Vukicevic <vladimir@pobox.com>
2021-05-06 10:58:37 -07:00
Бранимир Караџић
117c999d6e Added bgfx::Init capabilities mask. 2021-04-22 20:18:48 -07:00
pezcode
e8d4b3dcce Fixes for multiple windows and example 22 (#2483) 2021-04-19 15:30:03 -07:00
Бранимир Караџић
6a5ab30c6c In debug build assert on texture and frame buffer validation. 2021-04-17 08:35:34 -07:00
Бранимир Караџић
6109697ade Added bgfx::isFrameBufferValid API. 2021-04-16 22:13:26 -07:00
Бранимир Караџић
0ff10648b6 Cleanup. 2021-04-13 20:30:14 -07:00
Бранимир Караџић
9582f19483 Removed assert when viewport is zero size. 2021-04-05 16:07:23 -07:00
Бранимир Караџић
0df2e90edb Cleanup. 2021-04-01 20:09:16 -07:00
Vladimir Vukicevic
cb77d3bb46 Fix crash when hitting max draw call limit (#2440)
* Expand instancing demo to have non-instanced path

* Fix count vs. index off by one error when hitting max draw calls
2021-04-01 19:03:01 -07:00
pezcode
e38920c07b View rect/scissor and framebuffer validation (#2439)
* Crop view rect and scissor to frame-/backbuffer size

* Validate framebuffer attachments

Check texture size, mip, layer range, layer count mismatch

* Remove framebuffer check from Vulkan backend

* Fix layer check for 3D attachment

* Cleanup
2021-04-01 16:18:09 -07:00
Бранимир Караџић
e4d2451993 Made Vulkan default renderer backend on Linux. 2021-02-25 19:44:37 -08:00
pezcode
f983367d75 Vulkan synchronization fixes (#2386)
* Fix out of bounds index for unknown device types

* Vulkan: Insert barrier before image host reads

* Vulkan: Make commands wait for the wait semaphore

Making commands wait at BOTTOM_OF_PIPE is a no-op, resulting in instant execution

* Vulkan: Insert barrier between views/dispatches instead of waiting on the host

* Vulkan: Fix determination of access flag from image layout

This fixes two write-after-write races with copy commands after a layout transition to VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL

* Add BGFX_MAX_FRAME_LATENCY define

Affected backends either used a magic value of 3 or defined their own XX_MAX_FRAMES_IN_FLIGHT to be 3

* Vulkan: Include indirect draw in pipeline barrier

* Vulkan: honor init.resolution.numBackBuffers for swapchain size

* Make max frame latency configurable at compile time
2021-02-11 20:29:52 -08:00
Бранимир Караџић
af49c5d264 Happy New Year! 2021-01-14 15:53:49 -08:00
Бранимир Караџић
4967c29c14 Added missing caps to debug output. 2020-12-20 11:06:40 -08:00
Бранимир Караџић
6f16d0e68c Cleanup. 2020-12-16 21:17:49 -08:00
Бранимир Караџић
600c7798fd Removed BGFX_CAPS_INDEX32 from D3D9. Added validation for BGFX_CAPS_INDEX32 support. 2020-12-15 20:23:01 -08:00
Branimir Karadžić
5c304dad3b Fixed issue #2330. Added support for 32-bit indices in transient index buffer. 2020-12-15 19:01:25 -08:00
Бранимир Караџић
796acfa98b Added Attachment.numLayers needed for viewport layer array support. 2020-12-12 10:04:14 -08:00
Бранимир Караџић
0714e7c41e Cleanup. 2020-12-01 21:58:01 -08:00
Branimir Karadžić
1cab71734c Cleanup. 2020-11-29 21:17:50 -08:00
Branimir Karadžić
52a33b8bd3 Fixed warnings. 2020-11-29 21:16:39 -08:00
Бранимир Караџић
02ed265d2d Cleanup. 2020-11-29 17:14:07 -08:00
Бранимир Караџић
2dfc04e411 Cleanup. 2020-11-29 10:21:20 -08:00
Бранимир Караџић
f5179b385f Added resolution/reset debug info. 2020-11-29 10:14:37 -08:00
Бранимир Караџић
597ffc1aae Fixed request screenshot mechanism to work better with Metal. 2020-11-10 18:18:20 -08:00
Бранимир Караџић
8c2b99d81e Cleanup. 2020-10-09 20:50:03 -07:00
Бранимир Караџић
3a8e0e2bb1 Fixed blit on cubemaps. 2020-10-09 20:47:50 -07:00
pezcode
09c11bca29 Mip + blit fixes (#2281)
* D3D12: Fix readback for non-zero mip

* Fix blit with non-zero mip

This required clamping the blit extents to the mip size, which is moved out of the renderers now

* Assert formatting
2020-10-09 15:32:50 -07:00
Бранимир Караџић
e878147cf9 Added version info to debug stats. 2020-10-05 19:45:22 -07:00
kingscallop
436b7fab9e Adds UAV support for D3D12, Vulkan and reworked for OpenGL, D3D11 (#2119)
* 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.
2020-10-04 21:51:41 -07:00
Бранимир Караџић
cce003c99f Fixed warning. 2020-09-16 09:12:09 -07:00
Бранимир Караџић
4c0b7621d9 Fixed Encoder allocation alignment. 2020-09-14 09:30:33 -07:00
Бранимир Караџић
7479651dc8 Added ability to disable discrete GPU selection. 2020-07-06 12:29:05 -07:00
BorisShir
290ffcf341 Fixing problem with Android armv7 optmization which causes alignment violation (#2188)
* Fixing problem with Android armv7 optmization which causes alignment violation
2020-06-30 08:30:30 -07:00
Бранимир Караџић
7f333698cc Cleanup. 2020-06-20 13:20:20 -07:00
Бранимир Караџић
2cbcb6ea90 RRenamed BX_CHECK to BX_ASSERT. 2020-06-16 10:06:18 -07:00
Бранимир Караџић
867b47bd40 Cleanup. 2020-06-15 10:34:47 -07:00
Бранимир Караџић
0f8c6aed5c Fixed max encoders in single-threaded mode bug. 2020-06-15 10:30:51 -07:00