View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update | 
|---|---|---|---|---|---|
| 0005781 | The Dark Mod | Coding | public | 15.10.2021 03:01 | 15.10.2021 15:29 | 
| Reporter | stgatilov | Assigned To | stgatilov | ||
| Priority | normal | Severity | normal | Reproducibility | always | 
| Status | resolved | Resolution | fixed | ||
| Product Version | TDM 2.09 | ||||
| Target Version | TDM 2.10 | Fixed in Version | TDM 2.10 | ||
| Summary | 0005781: Image programs don't work with DDS source files. | ||||
| Description | Image programs don't work with DDS because they usually contains compressed data. And engine code has no means for decompression (aside from sending to GPU, which is a shitty way).  | ||||
| Additional Information | Note that doing any kind of processing on compressed images is discouraged! Because you operate with image which has already lost quality due to initial compression. So, this is considered a "last resort" feature.  | ||||
| Tags | No tags attached. | ||||
| 
	Implemented: r9629. Implemented code for DXT1, DXT3, DXT5, RGTC decompression. r9630. DDS loading code extracted from CheckPrecompressedImage and UploadPrecompressedImage to R_LoadCompressedImage. Also implemented imageCompressedData_s::ComputeUncompressedData method for DDS decompression. r9631. Supported loading DDS images in image programs. r9632. A bit more information in trace zones: image dimensions, compressed format. In case we decide that this feature should not exist, comment out the code in rev 9631. I only implemented generic C++ code for decompression, but it works very fast. Performance test shows about 2.5 ms per megapixel for each format --- that's the same as vectorized RGTC compressor takes. There are tests for texture decompression, one for correctness, and one for performance (not run by default). I compare our decompression results to decompression results of OpenGL driver. Unfortunately, there is no bitwise exact description of DXT formats in OpenGL specs. I tried to reproduce NVIDIA's behavior as closely as I could, but not perfectly: I allow error up to 1 in each component in the tests.  | 
|
| 
	Some bugfixes: r9633. Hopefully fixed GCC compile error. r9635. Fixed bug with sizes.  | 
|
| Date Modified | Username | Field | Change | 
|---|---|---|---|
| 15.10.2021 03:01 | stgatilov | New Issue | |
| 15.10.2021 03:01 | stgatilov | Status | new => assigned | 
| 15.10.2021 03:01 | stgatilov | Assigned To | => stgatilov | 
| 15.10.2021 03:01 | stgatilov | Relationship added | related to 0005325 | 
| 15.10.2021 03:18 | stgatilov | Additional Information Updated | |
| 15.10.2021 03:23 | stgatilov | Note Added: 0014434 | |
| 15.10.2021 03:23 | stgatilov | Status | assigned => resolved | 
| 15.10.2021 03:23 | stgatilov | Resolution | open => fixed | 
| 15.10.2021 03:23 | stgatilov | Fixed in Version | => TDM 2.10 | 
| 15.10.2021 15:29 | stgatilov | Note Added: 0014436 |