feat(macos): suport Metal per GpuShaderPreset via spirv-cross
- CMakeLists: bloc if(APPLE) que transpila .spv → .spv.msl amb spirv-cross - gpu_shader_preset: carrega MSL (main0) a macOS, SPIR-V (main) a la resta - Afegeix null-terminator als buffers MSL (SDL3 els tracta com C-string) - README: secció de dependències de shaders per plataforma (Vulkan SDK, spirv-cross) - Inclou .spv.msl generats per ntsc-md-rainbows Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
87
README.md
87
README.md
@@ -531,49 +531,92 @@ vibe3_physics/
|
||||
## 🔧 Requisitos del Sistema
|
||||
|
||||
- **SDL3** (Simple DirectMedia Layer 3)
|
||||
- **SDL3_ttf** (fuentes TTF para SDL3)
|
||||
- **C++20** compatible compiler (GCC 10+, Clang 12+, MSVC 2019+)
|
||||
- **CMake 3.20+** o **Make**
|
||||
- **CMake 3.20+**
|
||||
- **Plataforma**: Windows, Linux, macOS
|
||||
|
||||
### Instalación de SDL3
|
||||
### Dependencias de shaders
|
||||
|
||||
El proyecto compila shaders GLSL a SPIR-V en todas las plataformas usando `glslc` (incluido en el Vulkan SDK). En macOS, adicionalmente transpila los `.spv` a MSL (Metal) con `spirv-cross`.
|
||||
|
||||
| Plataforma | Backend GPU | Herramienta de shaders | Resultado |
|
||||
|------------|-------------|------------------------|-----------|
|
||||
| Linux | Vulkan | `glslc` (Vulkan SDK) | `.spv` |
|
||||
| Windows | Vulkan | `glslc` (Vulkan SDK) | `.spv` |
|
||||
| macOS | Metal | `glslc` + `spirv-cross`| `.spv.msl`|
|
||||
|
||||
---
|
||||
|
||||
### Instalación de dependencias
|
||||
|
||||
#### macOS
|
||||
|
||||
#### Windows (MinGW)
|
||||
```bash
|
||||
# Usando vcpkg
|
||||
vcpkg install sdl3
|
||||
# SDL3 + SDL3_ttf
|
||||
brew install sdl3 sdl3_ttf
|
||||
|
||||
# O compilar desde fuente
|
||||
git clone https://github.com/libsdl-org/SDL
|
||||
cd SDL
|
||||
mkdir build && cd build
|
||||
cmake ..
|
||||
make
|
||||
sudo make install
|
||||
# Vulkan SDK (incluye glslc para compilar shaders)
|
||||
# Descargar desde https://vulkan.lunarg.com/ o via Homebrew:
|
||||
brew install --cask vulkan-sdk
|
||||
|
||||
# spirv-cross (transpilación SPIR-V → MSL para Metal)
|
||||
brew install spirv-cross
|
||||
```
|
||||
|
||||
Tras instalar el Vulkan SDK es posible que necesites añadir `glslc` al PATH:
|
||||
```bash
|
||||
# Añadir a ~/.zshrc o ~/.bash_profile (ajusta la versión):
|
||||
export PATH="$HOME/VulkanSDK/<version>/macOS/bin:$PATH"
|
||||
source ~/.zshrc
|
||||
```
|
||||
|
||||
#### Linux (Ubuntu/Debian)
|
||||
```bash
|
||||
sudo apt update
|
||||
sudo apt install libsdl3-dev
|
||||
|
||||
# Si no está disponible, compilar desde fuente
|
||||
```bash
|
||||
# SDL3 + SDL3_ttf
|
||||
sudo apt update
|
||||
sudo apt install libsdl3-dev libsdl3-ttf-dev
|
||||
|
||||
# Vulkan SDK (incluye glslc)
|
||||
# Opción A: paquete del sistema
|
||||
sudo apt install glslc
|
||||
|
||||
# Opción B: Vulkan SDK completo (recomendado para versión reciente)
|
||||
wget -qO- https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo apt-key add -
|
||||
sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan.list \
|
||||
https://packages.lunarg.com/vulkan/lunarg-vulkan-focal.list
|
||||
sudo apt update
|
||||
sudo apt install vulkan-sdk
|
||||
```
|
||||
|
||||
#### Linux (Arch)
|
||||
|
||||
```bash
|
||||
sudo pacman -S sdl3
|
||||
sudo pacman -S sdl3 sdl3_ttf vulkan-devel glslang shaderc
|
||||
```
|
||||
|
||||
#### macOS
|
||||
#### Windows (MinGW / MSYS2)
|
||||
|
||||
```bash
|
||||
brew install sdl3
|
||||
# En MSYS2 shell:
|
||||
pacman -S mingw-w64-x86_64-SDL3 mingw-w64-x86_64-SDL3_ttf
|
||||
|
||||
# Vulkan SDK: descargar el instalador desde https://vulkan.lunarg.com/
|
||||
# El instalador añade glslc al PATH automáticamente.
|
||||
```
|
||||
|
||||
Con Visual Studio + vcpkg:
|
||||
```bash
|
||||
vcpkg install sdl3 sdl3-ttf
|
||||
# Instalar Vulkan SDK desde https://vulkan.lunarg.com/ (incluye glslc)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Compilación
|
||||
|
||||
### Opción 1: CMake (Recomendado)
|
||||
### CMake (todas las plataformas)
|
||||
|
||||
```bash
|
||||
mkdir -p build && cd build
|
||||
@@ -581,7 +624,9 @@ cmake ..
|
||||
cmake --build .
|
||||
```
|
||||
|
||||
### Opción 2: Make directo
|
||||
En macOS, CMake detecta automáticamente `spirv-cross` y genera los `.spv.msl` necesarios. Si no está instalado, los shaders de preset externos no funcionarán (el resto de la app sí).
|
||||
|
||||
### Make directo (Linux/macOS)
|
||||
|
||||
```bash
|
||||
make
|
||||
|
||||
Reference in New Issue
Block a user