Compare commits

...

7 Commits

Author SHA1 Message Date
Vincent Lee
b12eb2882a Fix bgfx_compile_shaders section of README.md 2024-11-07 08:10:32 -05:00
Andrew Feng
1139067c7d Improve shader profile extension to be more compatible with bgfx (#247)
* remove profile extension incompatible with those listed under examples/runtime/shaders; fix incorrect parameter names; enforce consistent syntax when appending to CLI.

* remove dx9

* add separate profile extension for paths vs profile extension
2024-11-05 12:41:12 -05:00
Matt Tytel
b135fa3d77 Fixing wayland cmake definitions and linkage. 2024-11-05 10:24:53 -05:00
dependabot[bot]
9af6a48ce0 build(deps): bump the submodules group with 3 updates (#252) 2024-11-05 14:56:44 +00:00
dependabot[bot]
f531516396 build(deps): bump the submodules group across 1 directory with 2 updates
Bumps the submodules group with 2 updates in the / directory: [bgfx](https://github.com/bkaradzic/bgfx) and [bx](https://github.com/bkaradzic/bx).


Updates `bgfx` from `409fbc5` to `7e5bb54`
- [Commits](409fbc5d14...7e5bb54a3e)

Updates `bx` from `3d53a4a` to `296dfb2`
- [Commits](3d53a4abaa...296dfb202b)

---
updated-dependencies:
- dependency-name: bgfx
  dependency-type: direct:production
  dependency-group: submodules
- dependency-name: bx
  dependency-type: direct:production
  dependency-group: submodules
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-02 14:21:33 -04:00
Boyu
94184872a8 Fix incorrect adding .h in bgfx_compile_shaders (#245) 2024-09-10 19:10:48 -04:00
dependabot[bot]
4ceffda6de build(deps): bump the submodules group across 1 directory with 3 updates
Bumps the submodules group with 3 updates in the / directory: [bgfx](https://github.com/bkaradzic/bgfx), [bx](https://github.com/bkaradzic/bx) and [bimg](https://github.com/bkaradzic/bimg).


Updates `bgfx` from `af12904` to `409fbc5`
- [Commits](af12904d8c...409fbc5d14)

Updates `bx` from `e7ede51` to `3d53a4a`
- [Commits](e7ede513dc...3d53a4abaa)

Updates `bimg` from `2afa64c` to `aaf9125`
- [Commits](2afa64c14c...aaf9125234)

---
updated-dependencies:
- dependency-name: bgfx
  dependency-type: direct:production
  dependency-group: submodules
- dependency-name: bx
  dependency-type: direct:production
  dependency-group: submodules
- dependency-name: bimg
  dependency-type: direct:production
  dependency-group: submodules
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-03 10:36:09 -04:00
11 changed files with 42 additions and 22 deletions

View File

@@ -23,7 +23,7 @@ jobs:
- name: Install Linux dependencies
run: |
sudo apt-get update
sudo apt install -y libgl1-mesa-dev
sudo apt install -y libgl1-mesa-dev libwayland-dev libwayland-egl-backend-dev
- uses: lukka/get-cmake@latest
with:
cmakeVersion: ${{ env.CMAKE_VERSION }}
@@ -63,7 +63,7 @@ jobs:
- name: Install Linux dependencies
run: |
sudo apt-get update
sudo apt install -y libgl1-mesa-dev
sudo apt install -y libgl1-mesa-dev libwayland-dev libwayland-egl-backend-dev
if: matrix.os == 'ubuntu-latest'
# Setup the build machine with the most recent versions of CMake and Ninja. Both are cached if not already: on subsequent runs both will be quickly restored from GitHub cache service.
@@ -100,7 +100,7 @@ jobs:
- name: Install Linux dependencies
run: |
sudo apt-get update
sudo apt install -y libgl1-mesa-dev
sudo apt install -y libgl1-mesa-dev libwayland-dev libwayland-egl-backend-dev
if: matrix.os == 'ubuntu-latest'
# Setup the build machine with the most recent versions of CMake and Ninja. Both are cached if not already: on subsequent runs both will be quickly restored from GitHub cache service.

View File

@@ -57,7 +57,7 @@ jobs:
- name: Install Linux dependencies
run: |
sudo apt-get update
sudo apt install -y libgl1-mesa-dev
sudo apt install -y libgl1-mesa-dev libwayland-dev libwayland-egl-backend-dev
if: matrix.os == 'ubuntu-latest'
# Setup the build machine with the most recent versions of CMake and Ninja. Both are cached if not already: on subsequent runs both will be quickly restored from GitHub cache service.
- uses: lukka/get-cmake@latest

View File

@@ -43,7 +43,7 @@ option(BGFX_INSTALL "Create installation target." ON)
cmake_dependent_option(
BGFX_INSTALL_EXAMPLES "Install examples and their runtimes." OFF "BGFX_INSTALL;BGFX_BUILD_EXAMPLES" OFF
)
cmake_dependent_option(BGFX_WITH_WAYLAND "Use Wayland backend." ON "CMAKE_SYSTEM_NAME STREQUAL 'Linux'" OFF)
cmake_dependent_option(BGFX_WITH_WAYLAND "Use Wayland backend." ON "CMAKE_SYSTEM_NAME STREQUAL Linux" OFF)
option(BGFX_CUSTOM_TARGETS "Include convenience custom targets." ON)
option(BGFX_CONFIG_MULTITHREADED "Build bgfx with multithreaded configuration" ON)
option(BGFX_CONFIG_RENDERER_WEBGPU "Enable the webgpu renderer" OFF)

View File

@@ -94,7 +94,7 @@ bgfx_compile_shaders(
SHADERS filenames
VARYING_DEF filename
OUTPUT_DIR directory
[AS_HEADER]
[AS_HEADERS]
)
```
This defines a shaderc command to generate binaries or headers for a number of `TYPE` shaders with `SHADERS` files and `VARYING_DEF` file in the `OUTPUT_DIR` directory. There will be one generated shader for each supported rendering API on this current platform according to the `BGFX_EMBEDDED_SHADER` macro in `bgfx/embedded_shader.h` for headers and in the directory expected by `load_shader` in `bgfx_utils.h`.
@@ -110,14 +110,14 @@ bgfx_compile_shaders(
SHADERS vs.sc
VARYING_DEF varying.def.sc
OUTPUT_DIR ${CMAKE_BINARY_DIR}/include/generated/shaders
AS_HEADER
AS_HEADERS
)
bgfx_compile_shader_to_header(
bgfx_compile_shaders(
TYPE FRAGMENT
SHADERS fs.sc
VARYING_DEF ${CMAKE_SOURCE_DIR}/varying.def.sc
OUTPUT_DIR ${CMAKE_BINARY_DIR}/include/generated/shaders
AS_HEADER
AS_HEADERS
)
add_library(myLib main.cpp vs.sc fs.sc)

2
bgfx

Submodule bgfx updated: af12904d8c...cc789e83a6

2
bimg

Submodule bimg updated: 2afa64c14c...0d1c78e779

2
bx

Submodule bx updated: e7ede513dc...2cebc558eb

View File

@@ -74,6 +74,8 @@ file(
${SPIRV_TOOLS}/source/text.h
${SPIRV_TOOLS}/source/text_handler.cpp
${SPIRV_TOOLS}/source/text_handler.h
${SPIRV_TOOLS}/source/to_string.cpp
${SPIRV_TOOLS}/source/to_string.h
${SPIRV_TOOLS}/source/util/bit_vector.cpp
${SPIRV_TOOLS}/source/util/bit_vector.h
${SPIRV_TOOLS}/source/util/bitutils.h

View File

@@ -87,6 +87,7 @@ endif()
if(BGFX_WITH_WAYLAND)
target_compile_definitions(bgfx PRIVATE "WL_EGL_PLATFORM=1")
target_link_libraries(bgfx PRIVATE wayland-egl)
endif()
set(BGFX_CONFIG_OPTIONS "")

View File

@@ -136,14 +136,19 @@ function(add_example ARG_NAME)
target_link_libraries(
example-${ARG_NAME} PUBLIC bgfx bx bimg bimg_decode ${DEAR_IMGUI_LIBRARIES} ${MESHOPTIMIZER_LIBRARIES}
)
if(BGFX_WITH_WAYLAND)
target_compile_definitions(example-${ARG_NAME} PUBLIC ENTRY_CONFIG_USE_WAYLAND=1)
endif()
if(BGFX_WITH_GLFW)
find_package(glfw3 REQUIRED)
target_link_libraries(example-${ARG_NAME} PUBLIC glfw)
target_compile_definitions(example-${ARG_NAME} PUBLIC ENTRY_CONFIG_USE_GLFW)
target_compile_definitions(example-${ARG_NAME} PUBLIC ENTRY_CONFIG_USE_GLFW=1)
elseif(BGFX_WITH_SDL)
find_package(SDL2 REQUIRED)
target_link_libraries(example-${ARG_NAME} PUBLIC ${SDL2_LIBRARIES})
target_compile_definitions(example-${ARG_NAME} PUBLIC ENTRY_CONFIG_USE_SDL)
target_compile_definitions(example-${ARG_NAME} PUBLIC ENTRY_CONFIG_USE_SDL=1)
elseif(UNIX AND NOT APPLE AND NOT ANDROID)
target_link_libraries(example-${ARG_NAME} PUBLIC X11)
endif()

View File

@@ -215,7 +215,7 @@ if(TARGET bgfx::texturec)
add_custom_command(
OUTPUT ${ARG_OUTPUT} #
COMMAND bgfx::texturec ${CLI} #
MAIN_DEPENDENCY ${ARG_INPUT} #
MAIN_DEPENDENCY ${ARG_FILE} #
)
endfunction()
endif()
@@ -279,12 +279,12 @@ if(TARGET bgfx::geometryc)
# --packnormal
if(ARG_PACKNORMAL)
list(APPEND CLI "--packnormal ${ARG_PACKNORMAL}")
list(APPEND CLI "--packnormal" "${ARG_PACKNORMAL}")
endif()
# --packuv
if(ARG_PACKUV)
list(APPEND CLI "--packuv" ${ARG_PACKUV})
list(APPEND CLI "--packuv" "${ARG_PACKUV}")
endif()
# --tangent
@@ -352,7 +352,7 @@ if(TARGET bgfx::geometryc)
add_custom_command(
OUTPUT ${ARG_OUTPUT} #
COMMAND bgfx::geometryc ${CLI} #
MAIN_DEPENDENCY ${ARG_INPUT} #
MAIN_DEPENDENCY ${ARG_FILE} #
)
endfunction()
endif()
@@ -539,15 +539,23 @@ if(TARGET bgfx::shaderc)
set(${ARG_OUT} ${CLI} PARENT_SCOPE)
endfunction()
# extensions consistent with those listed under bgfx/runtime/shaders
function(_bgfx_get_profile_path_ext PROFILE PROFILE_PATH_EXT)
string(REPLACE 300_es essl PROFILE ${PROFILE})
string(REPLACE 120 glsl PROFILE ${PROFILE})
string(REPLACE s_4_0 dx10 PROFILE ${PROFILE})
string(REPLACE s_5_0 dx11 PROFILE ${PROFILE})
set(${PROFILE_PATH_EXT} ${PROFILE} PARENT_SCOPE)
endfunction()
# extensions consistent with embedded_shader.h
function(_bgfx_get_profile_ext PROFILE PROFILE_EXT)
string(REPLACE 300_es essl PROFILE ${PROFILE})
string(REPLACE 120 glsl PROFILE ${PROFILE})
string(REPLACE spirv spv PROFILE ${PROFILE})
string(REPLACE metal mtl PROFILE ${PROFILE})
string(REPLACE s_3_0 dx9 PROFILE ${PROFILE})
string(REPLACE s_4_0 dx10 PROFILE ${PROFILE})
string(REPLACE s_5_0 dx11 PROFILE ${PROFILE})
set(${PROFILE_EXT} ${PROFILE} PARENT_SCOPE)
endfunction()
@@ -602,8 +610,12 @@ if(TARGET bgfx::shaderc)
set(COMMANDS "")
set(MKDIR_COMMANDS "")
foreach(PROFILE ${PROFILES})
_bgfx_get_profile_path_ext(${PROFILE} PROFILE_PATH_EXT)
_bgfx_get_profile_ext(${PROFILE} PROFILE_EXT)
set(OUTPUT ${ARGS_OUTPUT_DIR}/${PROFILE_EXT}/${SHADER_FILE_BASENAME}.bin$<$<BOOL:ARGS_AS_HEADERS>:.h>)
if(ARGS_AS_HEADERS)
set(HEADER_PREFIX .h)
endif()
set(OUTPUT ${ARGS_OUTPUT_DIR}/${PROFILE_PATH_EXT}/${SHADER_FILE_BASENAME}.bin${HEADER_PREFIX})
set(PLATFORM_I ${PLATFORM})
if(PROFILE STREQUAL "spirv")
set(PLATFORM_I LINUX)
@@ -632,7 +644,7 @@ if(TARGET bgfx::shaderc)
${CMAKE_COMMAND}
-E
make_directory
${ARGS_OUTPUT_DIR}/${PROFILE_EXT}
${ARGS_OUTPUT_DIR}/${PROFILE_PATH_EXT}
)
list(APPEND COMMANDS COMMAND bgfx::shaderc ${CLI})
endforeach()