aboutsummaryrefslogtreecommitdiff
path: root/srcds-pkgs/compressonator-sdk.nix
diff options
context:
space:
mode:
Diffstat (limited to 'srcds-pkgs/compressonator-sdk.nix')
-rw-r--r--srcds-pkgs/compressonator-sdk.nix47
1 files changed, 47 insertions, 0 deletions
diff --git a/srcds-pkgs/compressonator-sdk.nix b/srcds-pkgs/compressonator-sdk.nix
new file mode 100644
index 0000000..bdfd4c5
--- /dev/null
+++ b/srcds-pkgs/compressonator-sdk.nix
@@ -0,0 +1,47 @@
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, openexr, glm, mesa }:
+stdenv.mkDerivation rec {
+ pname = "compressonator-sdk";
+ version = "4.5.52";
+
+ src = fetchFromGitHub {
+ owner = "GPUOpen-Tools";
+ repo = "compressonator";
+ rev = "V${version}";
+ hash = "sha256-Vehzdlx39LX3p3z+U1y/ZbKyyPNuye21+RHCY2BbNHg=";
+ };
+
+ nativeBuildInputs = [ cmake pkg-config ];
+ buildInputs = [ openexr glm mesa ];
+
+ cmakeFlags = [
+ "-DOPTION_ENABLE_ALL_APPS=OFF"
+ "-DOPTION_BUILD_CMP_SDK=ON"
+ "-DOPTION_BUILD_KTX2=OFF"
+ ];
+
+ postPatch = ''
+ # the call sites for this are guarded behind ifdef OPTION_CMP_OPENCV but
+ # for some reason the thing itself isn't, and still gets built (???)
+ rm applications/_plugins/common/ssim*
+ sed -i '/ssim/d' applications/_plugins/common/CMakeLists.txt
+ '' + lib.optionalString stdenv.isAarch64 ''
+ # still plenty fast for our purposes
+ sed -i '/Core SIMD/,/target_link_libraries/d' \
+ {build/sdk/,}cmp_core/CMakeLists.txt
+ sed -i '/CGU_BOOL useAVX512/,/return result;/d' \
+ cmp_core/shaders/bc1_cmp.h
+ '';
+
+ installPhase = ''
+ mkdir -p $out/include
+ mv lib $out/
+ mv ../cmp_compressonatorlib/compressonator.h $out/include/
+ '';
+
+ meta = {
+ homepage = src.url;
+ description = "Tool suite for Texture and 3D Model Compression, Optimization and Analysis using CPUs, GPUs and APUs";
+ license = with lib.licenses; [ mit asl20 ];
+ platforms = lib.platforms.unix;
+ };
+} \ No newline at end of file