Commit Graph

472 Commits

Author SHA1 Message Date
kingscallop
17c9300afd
Allow shaders to be compiled on msys2 (#2539)
Adds support on tools.mk for the msys2 environment. The OS is still
considered windows but the command line tools for mkdir and rmdir
behave as if on linux.

The variable SHADER_TMP on the makefiles also had to be quoted to make
it work on msys2.
2021-06-12 11:36:54 -07:00
kingscallop
c0adb2a51e
Make the generated embedded shader headers the same between linux and gnuwin32 (#2538)
This echo command on the makefile behaves differently between linux and gnuwin32:
```
-@echo extern const uint8_t* $(basename $(<))_pssl;>> $(@)
```

On linux the semicolon immediately ends the echo command and its output is never piped to the embedded shader's header.
If you try to fix it by quoting the string:
```
-@echo "extern const uint8_t* $(basename $(<))_pssl;" >> $(@)
```

It will work on linux but not on gnuwin32 because the quotes will appear on the outputted string.
The solution was to use printf which works consistently between the two.

Also on gnuwin32 the outputted string has 'CRLF' line endings, which clashes with the rest of the 'LF' line endings
of the embedded shaders header which were produced by shaderc.
The solution was to remove the 'CR' from the outputted string by using the tr command.
2021-06-12 10:22:19 -07:00
kingscallop
73784ac9eb
Split embedded shaders into essl and glsl - Part 1 (#2535)
In non-embedded shaders there is a separation between essl binaries (examples/runtime/shaders/essl)
and glsl binaries (examples/runtime/shaders/glsl). On embedded shaders there is no such separation
and by default essl shaders are being used by the OpenGL runtime. This usually doesn't cause any
issues but in the case of the debugdraw shaders, that started using uvec4, this now leads to a
runtime error. This patch fixes this by splitting the embedded shaders into essl and glsl.

As asked, this is the first part of the change.

To be able to compile the 'examples/common/debugdraw' shaders, pull
request #2362 is needed.
2021-06-06 13:53:26 -07:00
Бранимир Караџић
08e3d51a9e Fixed docs. 2021-05-25 20:13:59 -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
Бранимир Караџић
117c999d6e Added bgfx::Init capabilities mask. 2021-04-22 20:18:48 -07:00
Hugo Amnov
cf8ff18263
WebGPU update (#2477)
* WebGPU: Update to latest changes + Fixes

* WebGPU: Fix RG11B10F format as framebuffer
2021-04-18 11:39:52 -07:00
Бранимир Караџић
6109697ade Added bgfx::isFrameBufferValid API. 2021-04-16 22:13:26 -07:00
Бранимир Караџић
69fb21f50e Cleanup. 2021-04-13 21:55:56 -07:00
Sam
49fb72842a
Minor alteration to clarify that BGFX_DISCARD_STATE also discards uniforms (#2464)
Signed-off-by: Samuel Hellawell <sshellawell@gmail.com>
2021-04-09 21:51:03 -07:00
Aleš Mlakar
f2a42ec216
Updated Beef bindings (#2426)
* Vulkan shader compiler uniform size fix (>255).

* Updated IDL Beef bindings

Co-authored-by: Aleš Mlakar <ales.ambits@gmail.com>
2021-03-17 17:49:01 -07:00
Бранимир Караџић
a735fccd15 Cleanup. 2021-03-05 18:07:45 -08:00
pezcode
302c978b1d
Make shaderc output independent of backend enums (#2411)
* Fix typo in SPIR-V id

* Use backend-agnostic shaderc output

...as opposed to directly storing and comparing against Vulkan and WebGPU enums. This is backwards-compatible with existing code and shaders.

* Remove comments and Undefined value
2021-02-28 12:38:12 -08:00
Julian Sikorski
39cdaace39
Fix building with wayland (#2412) 2021-02-28 10:15:09 -08:00
Бранимир Караџић
7daf5e0ba7 Cleanup. 2021-02-07 15:01:02 -08:00
Бранимир Караџић
239ce7a612 Fixed typo. 2021-02-07 07:35:18 -08:00
Branimir Karadžić
1401a5333d 45-bokeh: Built shaders and added example. 2021-01-31 10:07:49 -08:00
Hugo Amnov
a515dd3c3d
WebGPU update (#2364)
* Update WebGPU renderer to match new state of API

* Update WebGPU files
2021-01-19 15:18:30 -08:00
Бранимир Караџић
af49c5d264 Happy New Year! 2021-01-14 15:53:49 -08:00
Branimir Karadžić
4c18b80c9d 44-sss: Built shaders and added example to GENie script. 2021-01-10 11:24:28 -08:00
Branimir Karadžić
4760628bb1 43-denoise: Added shaders. 2021-01-02 10:46:43 -08:00
Бранимир Караџић
76f3e0590f OSX: Added separate osx-arm64 build configuration. 2020-12-31 18:17:39 -08:00
Бранимир Караџић
f232f93017 Added build rule to examples makefile. 2020-12-28 11:58:03 -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
Бранимир Караџић
8dd39d42df Cleanup. 2020-12-02 21:08:25 -08:00
Aleš Mlakar
93f0cdfaf4
IDL Beef bindings (#2290)
Co-authored-by: Aleš Mlakar <ales.ambits@gmail.com>
2020-10-19 06:54:18 -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
Бранимир Караџић
115661d158 Updated natvis. 2020-09-30 13:49:34 -07:00
Бранимир Караџић
86402fec24 Updated version number. 2020-09-05 11:24:50 -07:00
云风
0e1c095c3b
add *_with_layout APIs (#2251) 2020-09-01 20:19:14 -07:00
云风
4d6445896e
Add missing VertexLayoutHandle for C APIs (#2249) 2020-09-01 08:36:52 -07:00
Johan Sköld
74aae908ce
Updating xcode config. (#2198)
Changing the xcode platform to just `Native`. This lets xcode handle
all the target stuff, and works regardless of target.
2020-07-11 20:40:33 -07:00
Бранимир Караџић
9215cc8199 Updated glslang. 2020-07-10 17:17:00 -07:00
Бранимир Караџић
b152cba968 shaderc: Disabled warnings. 2020-07-10 16:24:50 -07:00
Бранимир Караџић
79964ffe13 Fixed build. 2020-06-20 09:06:37 -07:00
Mohamed Shazan
f8a9721fb3
Small fix on soname defining on ldflags (#2176)
Based on https://stackoverflow.com/questions/47279824/android-ndk-dlopen-failed
2020-06-20 09:02:51 -07:00
Бранимир Караџић
e9946b1be6 Cleanup. 2020-06-20 08:11:00 -07:00
Бранимир Караџић
7f3bd1f9bb Cleanup. 2020-06-20 08:06:26 -07:00
Mohamed Shazan
c6e4f528cb
Fix target extension on android for shared-library (#2175)
* Fix target extension on android for shared-library

* Add soname for linker

To avoid runtime dlopen() errors
2020-06-20 08:05:12 -07:00
Christophe Dehais
4a0b6dc3ff
Package runtime data alongside HTML5 examples (#2173)
Co-authored-by: Christophe Dehais <christophe.dehais@fittingbox.com>
2020-06-18 10:32:10 -07:00
Бранимир Караџић
8065659e90 Added configurable minimum resource command buffer size. 2020-06-03 17:58:54 -07:00
Бранимир Караџић
977188e9de Added weldVertices 32-bit indices support. 2020-05-30 21:38:41 -07:00
云风
be95d12307
Add examples 42 : BunnyLOD (#2155) 2020-05-30 10:49:06 -07:00
Бранимир Караџић
2baa857065 Fixed IDL generator mix of short/long Doxygen comments. 2020-05-30 09:21:49 -07:00
Бранимир Караџић
1c063fdc67 Fixed spelling. 2020-05-30 08:22:08 -07:00
云风
79166dfe17
Allow passing config macros from env (#2147) 2020-05-17 21:04:31 -07:00
juj
098e6194d9
Update examples to build on Emscripten Wasm. Add separate wasm and wasm2js targets. (#2145) 2020-05-16 19:45:55 -07:00
Бранимир Караџић
e08de6dd2c Fixed GENie script when action is not specified. 2020-05-10 22:15:06 -07:00
Бранимир Караџић
1359503a62 Cleanup. 2020-05-10 17:47:10 -07:00
Бранимир Караџић
bbd41124b7 Cleanup. 2020-05-09 10:24:23 -07:00
Бранимир Караџић
4e41f3d0bd Fixed build. 2020-05-08 09:03:02 -07:00
Hugo Amnov
b62302631e
Add Webgpu backend (#2132)
* WebGPU first draft (shaderc bin version 8)

* WebGPU scripts
2020-05-08 08:53:53 -07:00
Бранимир Караџић
f2e79bbe41 Fixed #2133. 2020-05-03 19:58:15 -07:00
Бранимир Караџић
60b51dcf85 Fixed #2128. 2020-05-03 18:18:26 -07:00
Бранимир Караџић
7792a893af Cleanup. 2020-04-25 09:50:52 -07:00
Бранимир Караџић
00d1225cc6 Updated docs. 2020-04-16 21:27:48 -07:00
Бранимир Караџић
6a1db4c2a2 Updated docs. 2020-04-14 20:13:22 -07:00
Бранимир Караџић
000a3b704c Cleanup. 2020-04-14 08:37:07 -07:00
Бранимир Караџић
06460b8ac2 Fixed discard flags. 2020-04-02 19:04:13 -07:00
Бранимир Караџић
c306e3b4bf Added bgfx version number. 2020-04-01 20:50:44 -07:00
Бранимир Караџић
23f9ba6552 Cleanup dicard flags. 2020-04-01 19:23:40 -07:00
Бранимир Караџић
6c0c5c9921 Renamed vertexdecl.* to vertexlayout.* 2020-03-28 20:06:03 -07:00
Cedric Guillemet
dbb83d2525 PR feedback 2020-03-18 02:14:20 +00:00
Cedric Guillemet
0881d98bd2 Discard flags for submit call 2020-03-18 02:14:20 +00:00
Бранимир Караџић
54dc5e3ae7 Removed support for SteamLink (discontinued 11/2018). 2020-03-11 21:51:55 -07:00
Vladimir Vukicevic
9499acce56 Add Valid property to handle types 2020-02-18 17:54:55 +00:00
Бранимир Караџић
c735560b93 Fixed typo. 2020-02-10 08:59:34 -08:00
Бранимир Караџић
cacf62190b Cleanup. 2020-02-10 08:19:21 -08:00
Vladimir Vukicevic
8165a837a7 CSharp bindings: move DllName definition to other, optional file 2020-02-05 18:31:31 -08:00
Бранимир Караџић
880f932cb8 Fixed issue #2002. 2020-01-22 19:54:14 -08:00
Бранимир Караџић
b14f9dc280 Cleanup. 2020-01-21 20:08:48 -08:00
Бранимир Караџић
de9a508409 Cleanup. 2020-01-21 09:16:55 -08:00
Cedric Guillemet
97005355c2 space 2020-01-21 09:11:53 -08:00
Cedric Guillemet
9ee39e8241 PR feedback 2020-01-21 09:11:53 -08:00
Cedric Guillemet
b4cac17b93 default parameters 2020-01-21 09:11:53 -08:00
Cedric Guillemet
4b83e0f5bc discard flags 2020-01-21 09:11:53 -08:00
Hugo Amiard
c4de3593de Cleanup Emscripten toolchain 2020-01-18 21:58:19 -08:00
Бранимир Караџић
82f56b5987 Happy New Year! 2020-01-14 21:37:06 -08:00
Бранимир Караџић
4eb5a125c6 Updated API version. 2019-10-31 07:31:09 -07:00
Sandy
c7950c6db3 view stats: Make CPU and GPU timestamps available (#1921)
* view stats: Make GPU begin and end times available

* view stats: Make CPU start and end times available

* view stats: Remove redundant `gpuTimeElapsed`

Value can be derived by `gpuTimeEnd - gpuTimeBegin`

* view stats: Remove redundant `cpuTimeElapsed`

Value can be derived by `cpuTimeEnd - cpuTimeBegin`
2019-10-31 07:30:35 -07:00
Бранимир Караџић
8494200645 Updated IDL info / autogenerated comments. 2019-10-25 20:40:02 -07:00
Бранимир Караџић
e16cf7bb06 Cleanup. 2019-10-25 20:34:33 -07:00
Бранимир Караџић
bd9600e167 Fixed IDL. 2019-10-25 20:13:21 -07:00
Cedric Guillemet
6a883a33fd Front facing (#1904)
* Added BGFX_STATE_FRONT_CCW to defines.h and implemented initial usage only in renderer_d3d11.cpp.

* set front facing for d3d12, gl metal and vulkan

* front facing method Metal

* tabs

* removed tab
idl updated
2019-10-25 20:07:05 -07:00
Ari Vuollet
8431576b80 Add D language bindings generator (#1907) 2019-10-09 07:23:17 -07:00
attilaz
694627885a Added texture functions with bias parameter (#1901)
and fixed a typo
2019-10-04 20:03:51 -07:00
Бранимир Караџић
03c99d50c7 Updated spirv-tools. 2019-09-26 12:58:33 -07:00
Бранимир Караџић
b079e67426 Cleanup. 2019-08-17 21:35:20 -07:00
Бранимир Караџић
79dc0a3a0d Cleanup. 2019-08-17 12:38:23 -07:00
Leandro Freire
1db46f4fe6 Rename variables and constants 2019-08-17 12:32:16 -07:00
Бранимир Караџић
a5898b131b examples: Added documentation link. 2019-08-14 21:19:03 -07:00
Бранимир Караџић
4986981378 VK: Added compute shaders. 2019-08-13 18:47:21 -07:00
Leandro Freire
855623e153 Rename VertexDecl to VertexLayout 2019-08-13 18:42:01 -07:00
Rinthel
e604ca021d remove warning / add build option for osx 2019-08-04 19:51:16 -07:00
DanielGavin
caccb56707 example 41-tess (#1821)
* new example

new tess example

* renaming

Rename clock to counter...

* clean

Remove comments

* clean up

removed vector and const char* path

* ups

Removing compiled shaders...
2019-07-20 17:04:35 -07:00
Бранимир Караџић
d5fcbf98cf Updated IDL. 2019-07-14 21:19:46 -07:00
Бранимир Караџић
6b32a32bb2 IDL C#: Added flag comments. 2019-07-14 18:23:57 -07:00
Бранимир Караџић
45fb76865e IDL C#: Added flag comments. 2019-07-12 22:40:21 -07:00
Бранимир Караџић
541a379722 IDL C#: Added enum comments. 2019-07-11 21:31:18 -07:00