Hlsl To Ispc Save

HLSL-to-ISPC Utility Library

Project README

HLSL-to-ISPC Utility Library

This repository contains a utility library with helper types and functions to provide similar syntax to HLSL, but inside the ISPC programming environment.

This library is used by several projects listed below:

smallpt mandelbrot
flower worley

Supported

  • Vectors: float2/3/4, int2/3/4, bool2/3/4
  • Matrices: float2x2/3x3/4x4
  • HLSL Intrinsics
  • (Basic) Texture2D sampling & addressing modes

Usage

#include "hlsl.ispc" in your ISPC project files. You can also recompile all the projects via hlsl-to-ispc.sln.

HLSL vs ISPC?

Since HLSL & GPU programming shares similar SPMD concepts as ISPC, it makes sense that a library could provide similar behaviour.

This library is meant to provide good-enough HLSL-like functionality in ISPC. Achieving high performance with ISPC requires more than simple code conversion. This library shouldn't be seen as be-all and end-all solution, but rather as a first step. ISPC has its own specificities, and it is vital to check the programming guide to achieve performance.

Upcoming Features

More functionality to be added and overall behaviour to be improved.

  • Additional work around ISPC-specifics
  • Texture sampling emulation
  • Unit testing of intrinsics
  • Direct conversion of .HLSL files to .ISPC kernels (most likely a separate/parallel project)
  • Support for GLSL intrinsics (maybe)
Open Source Agenda is not affiliated with "Hlsl To Ispc" Project. README Source: zigguratvertigo/hlsl-to-ispc
Stars
42
Open Issues
1
Last Commit
6 years ago
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating