summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/gallium/state_trackers/python/retrace/interpreter.py17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/gallium/state_trackers/python/retrace/interpreter.py b/src/gallium/state_trackers/python/retrace/interpreter.py
index 1918fc9bda..a7ae4c2625 100755
--- a/src/gallium/state_trackers/python/retrace/interpreter.py
+++ b/src/gallium/state_trackers/python/retrace/interpreter.py
@@ -28,6 +28,8 @@
import sys
+import struct
+
import gallium
import model
import parser
@@ -206,7 +208,8 @@ class Winsys(Object):
4,
gallium.PIPE_BUFFER_USAGE_CPU_READ |
gallium.PIPE_BUFFER_USAGE_CPU_WRITE )
- buffer.write(data, size)
+ assert size == len(data)
+ buffer.write(data)
return buffer
def buffer_create(self, alignment, usage, size):
@@ -216,7 +219,8 @@ class Winsys(Object):
pass
def buffer_write(self, buffer, data, size):
- buffer.write(data, size)
+ assert size == len(data)
+ buffer.write(data)
def fence_finish(self, fence, flags):
pass
@@ -369,6 +373,15 @@ class Context(Object):
if state is not None:
self.real.set_constant_buffer(shader, index, state.buffer)
+ if 1:
+ data = state.buffer.read()
+ format = '4f'
+ index = 0
+ for offset in range(0, len(data), struct.calcsize(format)):
+ x, y, z, w = struct.unpack_from(format, data, offset)
+ sys.stdout.write('\tCONST[%2u] = {%10.4f, %10.4f, %10.4f, %10.4f}\n' % (index, x, y, z, w))
+ index += 1
+
def set_framebuffer_state(self, state):
_state = gallium.Framebuffer()
_state.width = state.width