Skip to content

Commit bd42198

Browse files
committed
GPU OpenGL Display: Switch to using SPIR-V shaders
1 parent 77916a0 commit bd42198

21 files changed

Lines changed: 675 additions & 697 deletions

‎GPU/GPUTracking/cmake/vulkan_display.cmake‎

Lines changed: 0 additions & 36 deletions
This file was deleted.

‎GPU/GPUTracking/display/CMakeLists.txt‎

Lines changed: 55 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,46 @@ if(ALIGPU_BUILD_TYPE STREQUAL "O2")
3030
set_package_properties(Qt6 PROPERTIES TYPE OPTIONAL)
3131
endif()
3232

33+
# glslc compiles the shaders to SPIR-V for both backends
34+
if(Vulkan_GLSLC_EXECUTABLE AND NOT Vulkan_GLSLC_EXECUTABLE MATCHES "NOTFOUND")
35+
set(GPUCA_GLSLC ${Vulkan_GLSLC_EXECUTABLE})
36+
else()
37+
find_program(GPUCA_GLSLC glslc)
38+
endif()
39+
40+
# OpenGL backend: OpenGL 4.6 headers (bundled gl3w, or GLEW) for SPIR-V shaders, and glslc
41+
if(GPUCA_GLSLC)
42+
include(CheckSymbolExists)
43+
if(ALIGPU_BUILD_TYPE STREQUAL "O2" OR GPUCA_CONFIG_GL3W)
44+
set(CMAKE_REQUIRED_INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty)
45+
check_symbol_exists(GL_VERSION_4_6 "GL/glcorearb.h" GPUCA_GL3W_HAS_GL_4_6) # Bundled header
46+
if(GPUCA_GL3W_HAS_GL_4_6)
47+
set(GPUCA_EVENT_DISPLAY_OPENGL ON)
48+
endif()
49+
else()
50+
set(CMAKE_REQUIRED_INCLUDES ${GLEW_INCLUDE_DIRS})
51+
check_symbol_exists(GL_VERSION_4_6 "GL/glew.h" GPUCA_GLEW_HAS_GL_4_6)
52+
if(GPUCA_GLEW_HAS_GL_4_6)
53+
set(GPUCA_EVENT_DISPLAY_OPENGL ON)
54+
endif()
55+
endif()
56+
unset(CMAKE_REQUIRED_INCLUDES)
57+
endif()
58+
if(NOT GPUCA_EVENT_DISPLAY_OPENGL)
59+
if(ALIGPU_BUILD_TYPE STREQUAL "Standalone")
60+
message(FATAL_ERROR "OpenGL event display needs OpenGL 4.6 headers and glslc")
61+
endif()
62+
message(STATUS "OpenGL event display backend disabled: needs OpenGL 4.6 headers and glslc")
63+
endif()
64+
3365
if(Vulkan_FOUND)
3466
string(FIND "${Vulkan_VERSION}" "." vulkan_dot_index)
35-
if(NOT ${Vulkan_VERSION} VERSION_GREATER_EQUAL "1.4.328" OR vulkan_dot_index EQUAL -1 OR Vulkan_GLSLC_EXECUTABLE STREQUAL "Vulkan_GLSLC_EXECUTABLE-NOTFOUND")
67+
if(NOT ${Vulkan_VERSION} VERSION_GREATER_EQUAL "1.4.328" OR vulkan_dot_index EQUAL -1 OR NOT GPUCA_GLSLC)
3668
message(STATUS "Vulkan event display disabled: need Vulkan headers >= 1.4.328 (found ${Vulkan_VERSION}) and glslc")
3769
set(Vulkan_FOUND 0)
3870
endif()
3971
endif()
4072
if(Vulkan_FOUND)
41-
include(../cmake/vulkan_display.cmake)
4273
set(GPUCA_EVENT_DISPLAY_VULKAN ON)
4374
if(O2GPUWayland_FOUND)
4475
set(GPUCA_EVENT_DISPLAY_WAYLAND ON)
@@ -72,7 +103,7 @@ set(SRCS_NO_H helpers/GPUDisplayLoader.cxx
72103
helpers/GPUDisplayROOT.cxx
73104
frontend/GPUDisplayKeys.cxx)
74105

75-
set(HDRS_INSTALL shaders/GPUDisplayShaders.h)
106+
set(HDRS_INSTALL helpers/GPUDisplayMagneticFieldConstants.h)
76107

77108
if(GPUCA_EVENT_DISPLAY_VULKAN)
78109
set(SRCS ${SRCS} backend/GPUDisplayBackendVulkan.cxx)
@@ -160,7 +191,7 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/setinclude.sh PERMISSIONS OWNER_READ O
160191

161192
target_compile_definitions(${targetName} PRIVATE $<TARGET_PROPERTY:O2::GPUTracking,COMPILE_DEFINITIONS>)
162193

163-
message(STATUS "Building GPU Event Display (Vulkan ${GPUCA_EVENT_DISPLAY_VULKAN} ${Vulkan_VERSION}, Wayland ${GPUCA_EVENT_DISPLAY_WAYLAND}, Freetype ${GPUCA_EVENT_DISPLAY_FREETYPE}, Fontconfig ${Fontconfig_FOUND}, Qt ${GPUCA_EVENT_DISPLAY_QT})")
194+
message(STATUS "Building GPU Event Display (OpenGL ${GPUCA_EVENT_DISPLAY_OPENGL}, Vulkan ${GPUCA_EVENT_DISPLAY_VULKAN} ${Vulkan_VERSION}, Wayland ${GPUCA_EVENT_DISPLAY_WAYLAND}, Freetype ${GPUCA_EVENT_DISPLAY_FREETYPE}, Fontconfig ${Fontconfig_FOUND}, Qt ${GPUCA_EVENT_DISPLAY_QT})")
164195
target_link_libraries(${targetName} PUBLIC ${GLFW_LIBRARIES} OpenGL::GL)
165196
target_include_directories(${targetName} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
166197

@@ -193,17 +224,30 @@ if (OPENGL_GLU_FOUND)
193224
target_link_libraries(${targetName} PRIVATE OpenGL::GLU)
194225
endif()
195226

227+
if(GPUCA_EVENT_DISPLAY_OPENGL)
228+
target_compile_definitions(${targetName} PRIVATE GPUCA_BUILD_EVENT_DISPLAY_OPENGL)
229+
endif()
230+
231+
if(GPUCA_EVENT_DISPLAY_VULKAN OR GPUCA_EVENT_DISPLAY_OPENGL)
232+
include(shaders.cmake)
233+
set(SHADERS shaders/vertex.vert
234+
shaders/vertexPoint.vert
235+
shaders/vertexTexture.vert
236+
shaders/vertexPassthrough.vert
237+
shaders/fragment.frag
238+
shaders/fragmentText.frag
239+
shaders/fragmentTexture.frag
240+
shaders/field.geom)
241+
foreach(shader ${SHADERS})
242+
add_glslc_shader(${targetName} ${shader})
243+
endforeach()
244+
write_glslc_shader_header(${targetName} GPUDisplayLoadShaders.h)
245+
endif()
246+
196247
if(GPUCA_EVENT_DISPLAY_VULKAN)
197248
target_compile_definitions(${targetName} PRIVATE GPUCA_BUILD_EVENT_DISPLAY_VULKAN)
198249
target_link_libraries(${targetName} PRIVATE Vulkan::Vulkan)
199250

200-
add_glslc_shader(${targetName} shaders/fragment.frag)
201-
add_glslc_shader(${targetName} shaders/vertex.vert)
202-
add_glslc_shader(${targetName} shaders/fragmentText.frag)
203-
add_glslc_shader(${targetName} shaders/vertexTexture.vert)
204-
add_glslc_shader(${targetName} shaders/fragmentTexture.frag)
205-
add_glslc_shader(${targetName} shaders/fragmentUniform.frag)
206-
add_glslc_shader(${targetName} shaders/vertexPoint.vert)
207251
if(GPUCA_EVENT_DISPLAY_WAYLAND)
208252
target_compile_definitions(${targetName} PRIVATE GPUCA_BUILD_EVENT_DISPLAY_WAYLAND)
209253
target_link_libraries(${targetName} PRIVATE GPUWayland::wayland-client)

‎GPU/GPUTracking/display/backend/GPUDisplayBackendOpenGL.cxx‎

Lines changed: 22 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525

2626
#include "GPUCommonDef.h"
2727
#include "GPUDisplayBackendOpenGL.h"
28-
#include "shaders/GPUDisplayShaders.h"
2928
#include "GPUDisplay.h"
3029
#include "GPULogging.h"
3130
#include "GPUParam.h"
@@ -35,25 +34,17 @@
3534

3635
using namespace o2::gpu;
3736

38-
#ifdef GPUCA_BUILD_EVENT_DISPLAY_VULKAN
39-
#include "utils/qGetLdBinarySymbols.h"
40-
QGET_LD_BINARY_SYMBOLS(shaders_shaders_vertex_vert_spv);
41-
QGET_LD_BINARY_SYMBOLS(shaders_shaders_fragmentUniform_frag_spv);
42-
#endif
43-
44-
// Runtime minimum version defined in GPUDisplayFrontend.h, keep in sync!
45-
#define GPUCA_BUILD_EVENT_DISPLAY_OPENGL
46-
#if !defined(GL_VERSION_4_5) || GL_VERSION_4_5 != 1
47-
#ifdef GPUCA_STANDALONE
48-
#warning Unsupported OpenGL version < 4.5, disabling standalone event display
49-
#error Unsupported OpenGL version < 4.5
50-
#else
51-
#pragma message "Unsupported OpenGL version < 4.5, disabling standalone event display"
52-
#endif
53-
#undef GPUCA_BUILD_EVENT_DISPLAY_OPENGL
54-
#endif
37+
#ifdef GPUCA_BUILD_EVENT_DISPLAY_OPENGL // Set by CMake if OpenGL 4.6 headers and glslc are available, runtime minimum version in GPUDisplayFrontend.h
38+
#define GPUCA_DISPLAY_SHADER_TYPE_OPENGL
39+
#include "GPUDisplayLoadShaders.h"
5540

56-
#ifdef GPUCA_BUILD_EVENT_DISPLAY_OPENGL
41+
uint32_t GPUDisplayBackendOpenGL::loadShader(uint32_t type, const char* spirv, size_t size)
42+
{
43+
uint32_t shader = glCreateShader(type);
44+
glShaderBinary(1, &shader, GL_SHADER_BINARY_FORMAT_SPIR_V, spirv, size);
45+
glSpecializeShader(shader, "main", 0, nullptr, nullptr);
46+
return shader;
47+
}
5748

5849
GPUDisplayBackendOpenGL::GPUDisplayBackendOpenGL()
5950
{
@@ -225,13 +216,7 @@ void GPUDisplayBackendOpenGL::ActivateColor(std::array<float, 4>& color)
225216
} else
226217
#endif
227218
{
228-
if (mSPIRVShaders) {
229-
CHKERR(glBindBuffer(GL_UNIFORM_BUFFER, mSPIRVColorBuffer));
230-
CHKERR(glBufferData(GL_UNIFORM_BUFFER, sizeof(color), &color[0], GL_STATIC_DRAW));
231-
CHKERR(glBindBufferBase(GL_UNIFORM_BUFFER, 1, mSPIRVColorBuffer));
232-
} else {
233-
CHKERR(glUniform4fv(mColorId, 1, &color[0]));
234-
}
219+
CHKERR(glUniform4fv(UNIFORM_LOCATION_COLOR, 1, &color[0]));
235220
}
236221
}
237222

@@ -322,33 +307,11 @@ int32_t GPUDisplayBackendOpenGL::InitBackendA()
322307
#endif
323308
setDepthBuffer();
324309
setQuality();
325-
CHKERR(mVertexShader = glCreateShader(GL_VERTEX_SHADER));
326-
CHKERR(mFragmentShader = glCreateShader(GL_FRAGMENT_SHADER));
327-
CHKERR(mVertexShaderTexture = glCreateShader(GL_VERTEX_SHADER));
328-
CHKERR(mFragmentShaderTexture = glCreateShader(GL_FRAGMENT_SHADER));
329-
CHKERR(mFragmentShaderText = glCreateShader(GL_FRAGMENT_SHADER));
330-
#if defined(GL_VERSION_4_6) && GL_VERSION_4_6 == 1 && defined(GPUCA_BUILD_EVENT_DISPLAY_VULKAN)
331-
if (getenv("USE_SPIRV_SHADERS") && atoi(getenv("USE_SPIRV_SHADERS"))) {
332-
CHKERR(glShaderBinary(1, &mVertexShader, GL_SHADER_BINARY_FORMAT_SPIR_V_ARB, _binary_shaders_shaders_vertex_vert_spv_start, _binary_shaders_shaders_vertex_vert_spv_len));
333-
CHKERR(glSpecializeShader(mVertexShader, "main", 0, nullptr, nullptr));
334-
CHKERR(glShaderBinary(1, &mFragmentShader, GL_SHADER_BINARY_FORMAT_SPIR_V_ARB, _binary_shaders_shaders_fragmentUniform_frag_spv_start, _binary_shaders_shaders_fragmentUniform_frag_spv_len));
335-
CHKERR(glSpecializeShader(mFragmentShader, "main", 0, nullptr, nullptr));
336-
GPUInfo("Using SPIR-V shaders");
337-
mSPIRVShaders = true;
338-
} else
339-
#endif
340-
{
341-
CHKERR(glShaderSource(mVertexShader, 1, &GPUDisplayShaders::vertexShader, nullptr));
342-
CHKERR(glCompileShader(mVertexShader));
343-
CHKERR(glShaderSource(mFragmentShader, 1, &GPUDisplayShaders::fragmentShader, nullptr));
344-
CHKERR(glCompileShader(mFragmentShader));
345-
}
346-
CHKERR(glShaderSource(mVertexShaderTexture, 1, &GPUDisplayShaders::vertexShaderTexture, nullptr));
347-
CHKERR(glCompileShader(mVertexShaderTexture));
348-
CHKERR(glShaderSource(mFragmentShaderTexture, 1, &GPUDisplayShaders::fragmentShaderTexture, nullptr));
349-
CHKERR(glCompileShader(mFragmentShaderTexture));
350-
CHKERR(glShaderSource(mFragmentShaderText, 1, &GPUDisplayShaders::fragmentShaderText, nullptr));
351-
CHKERR(glCompileShader(mFragmentShaderText));
310+
CHKERR(mVertexShader = loadShader(GL_VERTEX_SHADER, _binary_opengl_vertex_vert_spv_start, _binary_opengl_vertex_vert_spv_len));
311+
CHKERR(mFragmentShader = loadShader(GL_FRAGMENT_SHADER, _binary_opengl_fragment_frag_spv_start, _binary_opengl_fragment_frag_spv_len));
312+
CHKERR(mVertexShaderTexture = loadShader(GL_VERTEX_SHADER, _binary_opengl_vertexTexture_vert_spv_start, _binary_opengl_vertexTexture_vert_spv_len));
313+
CHKERR(mFragmentShaderTexture = loadShader(GL_FRAGMENT_SHADER, _binary_opengl_fragmentTexture_frag_spv_start, _binary_opengl_fragmentTexture_frag_spv_len));
314+
CHKERR(mFragmentShaderText = loadShader(GL_FRAGMENT_SHADER, _binary_opengl_fragmentText_frag_spv_start, _binary_opengl_fragmentText_frag_spv_len));
352315
if (checkShaderStatus(mVertexShader) || checkShaderStatus(mFragmentShader) || checkShaderStatus(mVertexShaderTexture) || checkShaderStatus(mFragmentShaderTexture) || checkShaderStatus(mFragmentShaderText)) {
353316
return 1;
354317
}
@@ -359,31 +322,20 @@ int32_t GPUDisplayBackendOpenGL::InitBackendA()
359322
if (checkProgramStatus(mShaderProgram)) {
360323
return 1;
361324
}
362-
if (mSPIRVShaders) {
363-
CHKERR(glGenBuffers(1, &mSPIRVModelViewBuffer));
364-
CHKERR(glGenBuffers(1, &mSPIRVColorBuffer));
365-
} else {
366-
CHKERR(mModelViewProjId = glGetUniformLocation(mShaderProgram, "ModelViewProj"));
367-
CHKERR(mColorId = glGetUniformLocation(mShaderProgram, "color"));
368-
}
369325
CHKERR(mShaderProgramText = glCreateProgram());
370326
CHKERR(glAttachShader(mShaderProgramText, mVertexShaderTexture));
371327
CHKERR(glAttachShader(mShaderProgramText, mFragmentShaderText));
372328
CHKERR(glLinkProgram(mShaderProgramText));
373329
if (checkProgramStatus(mShaderProgramText)) {
374330
return 1;
375331
}
376-
CHKERR(mModelViewProjIdText = glGetUniformLocation(mShaderProgramText, "projection"));
377-
CHKERR(mColorIdText = glGetUniformLocation(mShaderProgramText, "textColor"));
378332
CHKERR(mShaderProgramTexture = glCreateProgram());
379333
CHKERR(glAttachShader(mShaderProgramTexture, mVertexShaderTexture));
380334
CHKERR(glAttachShader(mShaderProgramTexture, mFragmentShaderTexture));
381335
CHKERR(glLinkProgram(mShaderProgramTexture));
382336
if (checkProgramStatus(mShaderProgramTexture)) {
383337
return 1;
384338
}
385-
CHKERR(mModelViewProjIdTexture = glGetUniformLocation(mShaderProgramTexture, "projection"));
386-
CHKERR(mAlphaIdTexture = glGetUniformLocation(mShaderProgramTexture, "alpha"));
387339
CHKERR(glGenVertexArrays(1, &mVertexArray));
388340

389341
CHKERR(glGenVertexArrays(1, &VAO_texture));
@@ -425,10 +377,6 @@ void GPUDisplayBackendOpenGL::ExitBackendA()
425377
CHKERR(glDeleteTextures(1, &symbol.texId));
426378
}
427379
}
428-
if (mSPIRVShaders) {
429-
CHKERR(glDeleteBuffers(1, &mSPIRVModelViewBuffer));
430-
CHKERR(glDeleteBuffers(1, &mSPIRVColorBuffer));
431-
}
432380
if (mMagneticFieldVisualization) {
433381
ExitMagFieldVisualization();
434382
}
@@ -522,13 +470,7 @@ void GPUDisplayBackendOpenGL::prepareDraw(const hmm_mat4& proj, const hmm_mat4&
522470
#endif
523471
{
524472
const hmm_mat4 modelViewProj = proj * view;
525-
if (mSPIRVShaders) {
526-
glBindBuffer(GL_UNIFORM_BUFFER, mSPIRVModelViewBuffer);
527-
glBufferData(GL_UNIFORM_BUFFER, sizeof(modelViewProj), &modelViewProj, GL_STATIC_DRAW);
528-
glBindBufferBase(GL_UNIFORM_BUFFER, 0, mSPIRVModelViewBuffer);
529-
} else {
530-
CHKERR(glUniformMatrix4fv(mModelViewProjId, 1, GL_FALSE, &modelViewProj.Elements[0][0]));
531-
}
473+
CHKERR(glUniformMatrix4fv(UNIFORM_LOCATION_MATRIX, 1, GL_FALSE, &modelViewProj.Elements[0][0]));
532474
if (mMagneticFieldVisualization) {
533475
CHKERR(glNamedBufferSubData(mFieldModelViewBuffer, 0, sizeof(modelViewProj), &modelViewProj));
534476
}
@@ -603,9 +545,9 @@ void GPUDisplayBackendOpenGL::prepareText()
603545
CHKERR(glUseProgram(mShaderProgramText));
604546
CHKERR(glActiveTexture(GL_TEXTURE0));
605547
CHKERR(glBindVertexArray(VAO_text));
606-
CHKERR(glUniformMatrix4fv(mModelViewProjIdText, 1, GL_FALSE, &proj.Elements[0][0]));
548+
CHKERR(glUniformMatrix4fv(UNIFORM_LOCATION_MATRIX, 1, GL_FALSE, &proj.Elements[0][0]));
607549
float color[4] = {1.0f, 1.0f, 1.0f, 1.0f};
608-
CHKERR(glUniform4fv(mColorIdText, 1, &color[0]));
550+
CHKERR(glUniform4fv(UNIFORM_LOCATION_COLOR, 1, &color[0]));
609551
}
610552
}
611553

@@ -635,8 +577,8 @@ void GPUDisplayBackendOpenGL::mixImages(float mixSlaveImage)
635577
CHKERR(glUseProgram(mShaderProgramTexture));
636578
CHKERR(glActiveTexture(GL_TEXTURE0));
637579
CHKERR(glBindVertexArray(VAO_texture));
638-
CHKERR(glUniformMatrix4fv(mModelViewProjIdTexture, 1, GL_FALSE, &proj.Elements[0][0]));
639-
CHKERR(glUniform1f(mAlphaIdTexture, mixSlaveImage));
580+
CHKERR(glUniformMatrix4fv(UNIFORM_LOCATION_MATRIX, 1, GL_FALSE, &proj.Elements[0][0]));
581+
CHKERR(glUniform1f(UNIFORM_LOCATION_COLOR, mixSlaveImage));
640582
}
641583

642584
CHKERR(glBindTexture(GL_TEXTURE_2D, mMixBuffer.fbCol_id));
@@ -737,7 +679,7 @@ void GPUDisplayBackendOpenGL::OpenGLPrint(const char* s, float x, float y, float
737679
if (!mFreetypeInitialized || mDisplay->drawTextInCompatMode()) {
738680
return;
739681
}
740-
CHKERR(glUniform4fv(mColorIdText, 1, color));
682+
CHKERR(glUniform4fv(UNIFORM_LOCATION_COLOR, 1, color));
741683

742684
if (smoothFont()) {
743685
scale *= 0.25f; // Font size is 48 to have nice bitmap, scale to size 12

‎GPU/GPUTracking/display/backend/GPUDisplayBackendOpenGL.h‎

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ class GPUDisplayBackendOpenGL : public GPUDisplayBackend
4949
void setFrameBuffer(uint32_t newID = 0);
5050
int32_t InitBackendA() override;
5151
int32_t InitMagFieldVisualization();
52+
bool mMagneticFieldFailed = false; // Initialization of the field drawing failed, do not retry
5253
void ExitBackendA() override;
5354
void ExitMagFieldVisualization();
5455
static int32_t checkShaderStatus(uint32_t shader);
@@ -68,6 +69,9 @@ class GPUDisplayBackendOpenGL : public GPUDisplayBackend
6869
void lineWidthFactor(float factor) override;
6970
size_t needMultiVBO() override { return 0x100000000ll; }
7071
void readImageToPixels();
72+
static uint32_t loadShader(uint32_t type, const char* spirv, size_t size); // Create shader from SPIR-V
73+
static constexpr int32_t UNIFORM_LOCATION_MATRIX = 0; // Explicit uniform locations in the OpenGL variant of the shaders (shaders/*.vert, *.frag)
74+
static constexpr int32_t UNIFORM_LOCATION_COLOR = 4; // color, textColor, alpha
7175

7276
void addFontSymbol(int32_t symbol, int32_t sizex, int32_t sizey, int32_t offsetx, int32_t offsety, int32_t advance, void* data) override;
7377
void initializeTextDrawing() override;
@@ -94,14 +98,6 @@ class GPUDisplayBackendOpenGL : public GPUDisplayBackend
9498
uint32_t mIndirectId;
9599
std::vector<uint32_t> mVBOId;
96100
std::vector<FontSymbolOpenGL> mFontSymbols;
97-
int32_t mModelViewProjId;
98-
int32_t mColorId;
99-
int32_t mModelViewProjIdTexture;
100-
int32_t mAlphaIdTexture;
101-
int32_t mModelViewProjIdText;
102-
int32_t mColorIdText;
103-
uint32_t mSPIRVModelViewBuffer;
104-
uint32_t mSPIRVColorBuffer;
105101

106102
uint32_t mFieldModelViewBuffer;
107103
uint32_t mFieldModelConstantsBuffer;
@@ -116,8 +112,6 @@ class GPUDisplayBackendOpenGL : public GPUDisplayBackend
116112

117113
uint32_t VAO_field, VBO_field;
118114

119-
bool mSPIRVShaders = false;
120-
121115
GLfb mMixBuffer;
122116
GLfb mOffscreenBufferMSAA, mOffscreenBuffer;
123117
};

‎GPU/GPUTracking/display/backend/GPUDisplayBackendVulkan.cxx‎

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,8 @@ VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE
2727

2828
using namespace o2::gpu;
2929

30-
#include "utils/qGetLdBinarySymbols.h"
31-
QGET_LD_BINARY_SYMBOLS(shaders_shaders_vertex_vert_spv);
32-
QGET_LD_BINARY_SYMBOLS(shaders_shaders_fragment_frag_spv);
33-
QGET_LD_BINARY_SYMBOLS(shaders_shaders_vertexPoint_vert_spv);
34-
QGET_LD_BINARY_SYMBOLS(shaders_shaders_vertexTexture_vert_spv);
35-
QGET_LD_BINARY_SYMBOLS(shaders_shaders_fragmentTexture_frag_spv);
36-
QGET_LD_BINARY_SYMBOLS(shaders_shaders_fragmentText_frag_spv);
30+
#define GPUCA_DISPLAY_SHADER_TYPE_VULKAN
31+
#include "GPUDisplayLoadShaders.h"
3732

3833
// #define CHKERR(cmd) {cmd;}
3934
#define CHKERR(cmd) \
@@ -1292,7 +1287,7 @@ void GPUDisplayBackendVulkan::clearPipeline()
12921287
// ---------------------------- VULKAN SHADERS ----------------------------
12931288

12941289
#define LOAD_SHADER(file, ext) \
1295-
mShaders[#file] = createShaderModule(_binary_shaders_shaders_##file##_##ext##_spv_start, _binary_shaders_shaders_##file##_##ext##_spv_len, mDevice)
1290+
mShaders[#file] = createShaderModule(_binary_vulkan_##file##_##ext##_spv_start, _binary_vulkan_##file##_##ext##_spv_len, mDevice)
12961291

12971292
void GPUDisplayBackendVulkan::createShaders()
12981293
{

0 commit comments

Comments
 (0)