summaryrefslogtreecommitdiff
path: root/retrace
diff options
context:
space:
mode:
authorPatrick Rudolph <siro@das-labor.org>2016-09-02 15:04:00 +0200
committerJose Fonseca <jfonseca@vmware.com>2016-09-21 11:48:49 +0100
commit26be65c194445d87602712f4e85b2ac44739a583 (patch)
tree60eba5549491eda3b267b70c13fdf91aa8856342 /retrace
parent3fcc2a9fae0dc4625b0610d4b64ceedb81546e3f (diff)
d3dretrace: Add support for half float formats
Use MESA half-float to float conversion function. Mesa uses MIT compatibel license which should fit apitrace license. Copyright header remains untouched. Signed-off-by: Patrick Rudolph <siro@das-labor.org>
Diffstat (limited to 'retrace')
-rw-r--r--retrace/d3d9state_formats.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/retrace/d3d9state_formats.cpp b/retrace/d3d9state_formats.cpp
index 845ae26d..bd16f567 100644
--- a/retrace/d3d9state_formats.cpp
+++ b/retrace/d3d9state_formats.cpp
@@ -30,6 +30,7 @@
#include <stdint.h>
#include "image.hpp"
+#include "halffloat.hpp"
#ifdef HAVE_DXGI
#include "dxgistate.hpp"
@@ -181,6 +182,7 @@ ConvertImage(D3DFORMAT SrcFormat,
channelType = image::TYPE_UNORM8;
break;
case D3DFMT_R32F:
+ case D3DFMT_R16F:
case D3DFMT_D16:
case D3DFMT_D16_LOCKABLE:
case D3DFMT_D24S8:
@@ -251,6 +253,11 @@ ConvertImage(D3DFORMAT SrcFormat,
case D3DFMT_R32F:
memcpy(dst, src, Width * sizeof(float));
break;
+ case D3DFMT_R16F:
+ for (unsigned x = 0; x < Width; ++x) {
+ ((float *)dst)[x] = util_half_to_float(((const uint16_t *)src)[x]);
+ }
+ break;
default:
assert(0);
break;