Skip to content

Vulkan: extract draw/bind path to vk_draw_state.c #26

Vulkan: extract draw/bind path to vk_draw_state.c

Vulkan: extract draw/bind path to vk_draw_state.c #26

# Tier B: content-backed renderer checks (GAME_BASE) on every main push.
#
# This job runs only when a repository variable or secret provides the absolute path
# to a game **base** directory (see docs/renderer_validation/SELF_HOSTED_TIER_B.md).
#
# Requires a self-hosted runner labeled `idtech3-tierb` (plus `self-hosted`) with:
# - GAME_BASE path readable on that machine
# - Build deps (same family as docs/DEVELOPMENT_SETUP.md for Linux)
# - glslangValidator for renderer_regression_check.sh
name: renderer-tier-b
permissions:
contents: read
on:
push:
branches:
- main
workflow_dispatch:
concurrency:
group: renderer-tier-b-${{ github.ref }}
cancel-in-progress: true
jobs:
gamebase-regression:
name: Tier B (GAME_BASE regression)
# Skip when unset: forks and engine-only repos need no runner or variable.
# Set repository variable IDTECH3_GAME_BASE_PATH to an absolute path on the runner host.
if: ${{ vars.IDTECH3_GAME_BASE_PATH != '' }}
runs-on: [self-hosted, idtech3-tierb]
env:
DEBIAN_FRONTEND: noninteractive
GAME_BASE: ${{ vars.IDTECH3_GAME_BASE_PATH }}
steps:
- uses: actions/checkout@v4
- name: Verify GAME_BASE
run: |
set -euo pipefail
test -d "$GAME_BASE" || { echo "GAME_BASE is not a directory: $GAME_BASE" >&2; exit 1; }
echo "Using GAME_BASE=$GAME_BASE"
- name: Build Vulkan (Release)
env:
CFLAGS: "-DSKIP_IDPAK_CHECK=1"
CXXFLAGS: "-DSKIP_IDPAK_CHECK=1"
run: |
set -euo pipefail
./scripts/compile_engine.sh vulkan
- name: Renderer regression check (repo + optional BSP)
run: |
set -euo pipefail
GAME_BASE="$GAME_BASE" ./scripts/renderer_regression_check.sh
- name: Renderer regression map load (dedicated)
run: |
set -euo pipefail
GAME_BASE="$GAME_BASE" ./scripts/renderer_regression_maps.sh