Skip to content

Commit 6c0f055

Browse files
Add Linux ASAN CI configuration
1 parent d14b6f2 commit 6c0f055

7 files changed

Lines changed: 49 additions & 34 deletions

File tree

.github/workflows/build-android.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ jobs:
1919

2020
steps:
2121
- name: Clean Disk
22-
uses: DiligentGraphics/github-action/clean-disk-ubuntu@v14
22+
uses: DiligentGraphics/github-action/clean-disk-ubuntu@v18
2323

2424
- name: Checkout
25-
uses: DiligentGraphics/github-action/checkout@v14
25+
uses: DiligentGraphics/github-action/checkout@v18
2626

2727
- name: Create CMake
2828
if: success()
@@ -34,7 +34,7 @@ jobs:
3434
3535
- name: Set up build environment
3636
if: success()
37-
uses: DiligentGraphics/github-action/setup-build-env@v14
37+
uses: DiligentGraphics/github-action/setup-build-env@v18
3838
with:
3939
platform: Android
4040

.github/workflows/build-apple.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,21 +53,21 @@ jobs:
5353

5454
steps:
5555
- name: Checkout
56-
uses: DiligentGraphics/github-action/checkout@v14
56+
uses: DiligentGraphics/github-action/checkout@v18
5757

5858
- name: Set up build environment
5959
if: success()
60-
uses: DiligentGraphics/github-action/setup-build-env@v14
60+
uses: DiligentGraphics/github-action/setup-build-env@v18
6161
with:
6262
platform: ${{ matrix.platform }}
6363

6464
- name: Configure CMake
6565
if: success()
66-
uses: DiligentGraphics/github-action/configure-cmake@v14
66+
uses: DiligentGraphics/github-action/configure-cmake@v18
6767
with:
6868
build-type: ${{ matrix.build_type }}
6969
cmake-args: ${{ matrix.cmake_args }}
7070

7171
- name: Build
7272
if: success()
73-
uses: DiligentGraphics/github-action/build@v14
73+
uses: DiligentGraphics/github-action/build@v18

.github/workflows/build-emscripten.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,21 +38,21 @@ jobs:
3838

3939
steps:
4040
- name: Checkout
41-
uses: DiligentGraphics/github-action/checkout@v14
41+
uses: DiligentGraphics/github-action/checkout@v18
4242

4343
- name: Set up build environment
4444
if: success()
45-
uses: DiligentGraphics/github-action/setup-build-env@v14
45+
uses: DiligentGraphics/github-action/setup-build-env@v18
4646
with:
4747
platform: Web
4848

4949
- name: Configure CMake
5050
if: success()
51-
uses: DiligentGraphics/github-action/configure-cmake@v14
51+
uses: DiligentGraphics/github-action/configure-cmake@v18
5252
with:
5353
build-type: ${{ matrix.build_type }}
5454
cmake-args: ${{ matrix.cmake_args }}
5555

5656
- name: Build
5757
if: success()
58-
uses: DiligentGraphics/github-action/build@v14
58+
uses: DiligentGraphics/github-action/build@v18

.github/workflows/build-linux.yml

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -55,59 +55,68 @@ jobs:
5555
cc: "clang-18"
5656
cxx: "clang++-18"
5757

58+
- name: "Clang-ASAN"
59+
build_type: "RelWithDebInfo"
60+
cmake_generator: "Ninja"
61+
cmake_args: ""
62+
enable_asan: "true"
63+
cc: "clang-18"
64+
cxx: "clang++-18"
65+
5866
name: Linux -> ${{ matrix.name }}-x64, ${{ matrix.build_type }}
5967

6068
steps:
6169
- name: Checkout
62-
uses: DiligentGraphics/github-action/checkout@v14
70+
uses: DiligentGraphics/github-action/checkout@v18
6371

6472
- name: Set up build environment
6573
if: success()
66-
uses: DiligentGraphics/github-action/setup-build-env@v14
74+
uses: DiligentGraphics/github-action/setup-build-env@v18
6775
with:
6876
platform: Linux
6977
cmake-generator: ${{ matrix.cmake_generator }}
7078

7179
- name: Configure CMake
7280
if: success()
73-
uses: DiligentGraphics/github-action/configure-cmake@v14
81+
uses: DiligentGraphics/github-action/configure-cmake@v18
7482
with:
7583
cc: ${{ matrix.cc }}
7684
cxx: ${{ matrix.cxx }}
7785
generator: ${{ matrix.cmake_generator }}
7886
build-type: ${{ matrix.build_type }}
7987
cmake-args: ${{ matrix.cmake_args }}
88+
enable-asan: ${{ matrix.enable_asan }}
8089

8190
- name: Build
8291
id: build
8392
if: success()
84-
uses: DiligentGraphics/github-action/build@v14
93+
uses: DiligentGraphics/github-action/build@v18
8594

8695
- name: Sample Tests Vk
8796
if: success()
88-
uses: DiligentGraphics/github-action/run-sample-tests@v14
97+
uses: DiligentGraphics/github-action/run-sample-tests@v18
8998
with:
9099
mode: "vk_sw"
91100
golden-image-mode: "compare_update"
92101

93102
- name: Sample Tests Vk Compatibility
94103
if: success()
95-
uses: DiligentGraphics/github-action/run-sample-tests@v14
104+
uses: DiligentGraphics/github-action/run-sample-tests@v18
96105
with:
97106
mode: "vk_sw"
98107
golden-image-mode: "compare"
99108
vk-compatibility: true
100109

101110
- name: Sample Tests GL
102111
if: ${{ success() || failure() && steps.build.outcome == 'success' }}
103-
uses: DiligentGraphics/github-action/run-sample-tests@v14
112+
uses: DiligentGraphics/github-action/run-sample-tests@v18
104113
with:
105114
mode: "gl"
106115
golden-image-mode: "compare_update"
107116

108117
- name: Sample Tests GL with Non-Separable Programs
109118
if: ${{ success() || failure() && steps.build.outcome == 'success' }}
110-
uses: DiligentGraphics/github-action/run-sample-tests@v14
119+
uses: DiligentGraphics/github-action/run-sample-tests@v18
111120
with:
112121
mode: "gl"
113122
golden-image-mode: "compare"
@@ -118,7 +127,7 @@ jobs:
118127
uses: actions/upload-artifact@v7
119128
# NB: it is essential to include failure() to override the default status check of success()
120129
# that is automatically applied to if conditions that don't contain a status check function.
121-
if: ${{ success() || failure() && steps.build.outcome == 'success' }}
130+
if: ${{ (success() || failure() && steps.build.outcome == 'success') && matrix.name != 'Clang-ASAN' }}
122131
with:
123132
name: GoldenImages-${{ matrix.name }}-${{ matrix.toolset }}-${{ matrix.build_type }}
124133
path: |

.github/workflows/build-windows.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -82,19 +82,19 @@ jobs:
8282

8383
steps:
8484
- name: Checkout
85-
uses: DiligentGraphics/github-action/checkout@v14
85+
uses: DiligentGraphics/github-action/checkout@v18
8686

8787
- name: Set up build environment
8888
if: success()
89-
uses: DiligentGraphics/github-action/setup-build-env@v14
89+
uses: DiligentGraphics/github-action/setup-build-env@v18
9090
with:
9191
platform: ${{ matrix.platform }}
9292
cmake-generator: ${{ matrix.cmake_generator }}
9393
ninja-vs-arch: ${{ matrix.toolset }}
9494

9595
- name: Configure CMake
9696
if: success()
97-
uses: DiligentGraphics/github-action/configure-cmake@v14
97+
uses: DiligentGraphics/github-action/configure-cmake@v18
9898
with:
9999
generator: ${{ matrix.cmake_generator }}
100100
vs-arch: ${{ matrix.toolset }}
@@ -104,13 +104,13 @@ jobs:
104104
- name: Build
105105
id: build
106106
if: success()
107-
uses: DiligentGraphics/github-action/build@v14
107+
uses: DiligentGraphics/github-action/build@v18
108108
with:
109109
build-args: ${{ matrix.build_args }}
110110

111111
- name: Sample Tests D3D11
112112
if: ${{ matrix.name == 'Win10' || matrix.name == 'Win8.1' || matrix.name == 'Win10-Ninja' }}
113-
uses: DiligentGraphics/github-action/run-sample-tests@v14
113+
uses: DiligentGraphics/github-action/run-sample-tests@v18
114114
with:
115115
mode: "d3d11_sw"
116116
golden-image-mode: "compare_update"
@@ -119,7 +119,7 @@ jobs:
119119
# NB: it is essential to include failure() to override the default status check of success()
120120
# that is automatically applied to if conditions that don't contain a status check function.
121121
if: ${{ (success() || failure() && steps.build.outcome == 'success') && (matrix.name == 'Win10' || matrix.name == 'Win10-Ninja') }}
122-
uses: DiligentGraphics/github-action/run-sample-tests@v14
122+
uses: DiligentGraphics/github-action/run-sample-tests@v18
123123
with:
124124
mode: "d3d12_sw"
125125
golden-image-mode: "compare_update"
@@ -128,7 +128,7 @@ jobs:
128128
# NB: it is essential to include failure() to override the default status check of success()
129129
# that is automatically applied to if conditions that don't contain a status check function.
130130
if: ${{ (success() || failure() && steps.build.outcome == 'success') && (matrix.name == 'Win10') }}
131-
uses: DiligentGraphics/github-action/run-sample-tests@v14
131+
uses: DiligentGraphics/github-action/run-sample-tests@v18
132132
with:
133133
mode: "wgpu"
134134
golden-image-mode: "compare_update"

.github/workflows/msvc_analysis.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,18 +28,18 @@ jobs:
2828

2929
steps:
3030
- name: Checkout
31-
uses: DiligentGraphics/github-action/checkout@v14
31+
uses: DiligentGraphics/github-action/checkout@v18
3232

3333
- name: Set up build environment
3434
if: success()
35-
uses: DiligentGraphics/github-action/setup-build-env@v14
35+
uses: DiligentGraphics/github-action/setup-build-env@v18
3636
with:
3737
platform: ${{ matrix.platform }}
3838
cmake-generator: ${{ matrix.cmake_generator }}
3939

4040
- name: Configure CMake
4141
if: success()
42-
uses: DiligentGraphics/github-action/configure-cmake@v14
42+
uses: DiligentGraphics/github-action/configure-cmake@v18
4343
with:
4444
generator: ${{ matrix.cmake_generator }}
4545
vs-arch: ${{ matrix.toolset }}
@@ -48,7 +48,7 @@ jobs:
4848

4949
- name: Build
5050
if: success()
51-
uses: DiligentGraphics/github-action/build@v14
51+
uses: DiligentGraphics/github-action/build@v18
5252
with:
5353
build-args: ${{ matrix.build_args }}
5454

Tutorials/Tutorial00_HelloLinux/src/Tutorial00_HelloLinux.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -386,7 +386,7 @@ XCBInfo InitXCBConnectionAndWindow()
386386
hints.min_width = 320;
387387
hints.min_height = 240;
388388
xcb_change_property(info.connection, XCB_PROP_MODE_REPLACE, info.window, XCB_ATOM_WM_NORMAL_HINTS, XCB_ATOM_WM_SIZE_HINTS,
389-
32, sizeof(xcb_size_hints_t), &hints);
389+
32, sizeof(hints) / sizeof(uint32_t), &hints);
390390

391391
xcb_map_window(info.connection, info.window);
392392

@@ -399,13 +399,17 @@ XCBInfo InitXCBConnectionAndWindow()
399399
xcb_generic_event_t* e;
400400
while ((e = xcb_wait_for_event(info.connection)))
401401
{
402-
if ((e->response_type & ~0x80) == XCB_EXPOSE) break;
402+
const auto ResponseType = e->response_type & ~0x80;
403+
free(e);
404+
if (ResponseType == XCB_EXPOSE)
405+
break;
403406
}
404407
return info;
405408
}
406409

407410
void DestroyXCBConnectionAndWindow(XCBInfo& info)
408411
{
412+
free(info.atom_wm_delete_window);
409413
xcb_destroy_window(info.connection, info.window);
410414
xcb_disconnect(info.connection);
411415
}
@@ -592,12 +596,13 @@ int x_main()
592596

593597
constexpr int True = 1;
594598
GLXContext ctx = glXCreateContextAttribsARB(display, fbc[0], NULL, True, context_attribs);
599+
XFree(vi);
600+
XFree(fbc);
595601
if (!ctx)
596602
{
597603
std::cerr << "Failed to create GL context.\n";
598604
return -1;
599605
}
600-
XFree(fbc);
601606

602607

603608
glXMakeCurrent(display, win, ctx);
@@ -646,6 +651,7 @@ int x_main()
646651
glXMakeCurrent(display, None, NULL);
647652
glXDestroyContext(display, ctx);
648653
XDestroyWindow(display, win);
654+
XFreeColormap(display, swa.colormap);
649655
XCloseDisplay(display);
650656

651657
return 0;

0 commit comments

Comments
 (0)