compressonator
compressonator copied to clipboard
GPU encoding not working on RX 580 system
I'm trying to use compressonator to convert PNG images to BC7 dds. However, both GPU encoding options (DXC and OCL) are not working for me (to make sure this wasn't a BC7 problem, I also tried using BC3, with the same problems.)
When using DXC I get
"C:\Compressonator_4.0.4855\bin\CLI\CompressonatorCLI.exe" -EncodeWith DXC -DecodeWith Vulkan -fd BC7 -miplevels 9 -Quality 1.0 .\png .\dds Failed compiling shader 80070003 Warning: Target device is not supported or failed to build. CPU will be used
and when using OCL I get
"C:\Compressonator_4.0.4855\bin\CLI\CompressonatorCLI.exe" -EncodeWith OCL -DecodeWith Vulkan -fd BC7 -miplevels 9 -Quality 1.0 .\png .\dds Failed to create the program! Error: CL_INVALID_VALUE Warning: Target device is not supported or failed to build. CPU will be used
However, as far as I am aware, my system meets all the requirements for encoding over GPU.
My system: OS: Windows 10 v2004 CPU: Intel i5 3570k GPU: Radeon RX 580 RAM: 24GB DDR3
@NikoofDeath Vulkan based GPU encoding is currently not supported, only decoding is. In your sample you do both encoding and decoding at the same time, which results in decoded BC7 dds files. and a Vulkan support error message for the encoding part.
To encode the png files to bc7 dds using DirectX try using only: CompressonatorCLI.exe -EncodeWith DXC -fd BC7 -miplevels 9 -Quality 1.0 .\png .\dds
If you are still getting errors: "Failed compiling shader 80070003 Warning" then there is a issue with the image source " multiple of 4 in width & height"
make sure that the png image file width and height are divisible by 4 for all 9 miplevels.
@NikoofDeath Are you still having this issue after the suggested changes in last comment.
Those changes didn't fix the problem, but my testing uncovered the problem/solution: Running CompressonatorCLI.exe in its own folder (I had had the command prompt in the folder I was storing my images in, and thus running CompresonatorCLI in there) gets it working perfectly. Not sure if this is normal behavior (additionally, GPU encoding is still not working when done through GUI).