summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorJose Fonseca <[email protected]>2018-05-24 16:51:38 +0100
committerJose Fonseca <[email protected]>2018-06-04 21:06:31 +0100
commitdb38c3b4ba1f9a452b7d16969cd2d3fac46aa45b (patch)
treeec72180faf62bfaeded8df15566a00c09bda3a9a /src/gallium
parent8652ff7cdfe1d7b7aeb7974891a7c5cc7d5cc760 (diff)
trace: Fix parsing of recent traces.
Reviewed-by: Roland Scheidegger <[email protected]>
Diffstat (limited to 'src/gallium')
-rwxr-xr-xsrc/gallium/tools/trace/dump_state.py31
1 files changed, 26 insertions, 5 deletions
diff --git a/src/gallium/tools/trace/dump_state.py b/src/gallium/tools/trace/dump_state.py
index 4531843279e..2622d130bf8 100755
--- a/src/gallium/tools/trace/dump_state.py
+++ b/src/gallium/tools/trace/dump_state.py
@@ -137,6 +137,7 @@ class Translator(model.Visitor):
def visit_struct(self, node):
struct = Struct()
for member_name, member_node in node.members:
+ member_name = member_name.replace('.', '_')
member_value = self.visit(member_node)
setattr(struct, member_name, member_value)
self.result = struct
@@ -185,7 +186,7 @@ class Screen(Dispatcher):
def destroy(self):
pass
- def context_create(self):
+ def context_create(self, priv=None, flags=0):
return Context(self.interpreter)
def is_format_supported(self, format, target, sample_count, bind, geom_flags):
@@ -498,10 +499,11 @@ class Context(Dispatcher):
vertex = []
for velem in self._state.vertex_elements:
vbuf = self._state.vertex_buffers[velem.vertex_buffer_index]
- if vbuf.buffer is None:
+ resource = vbuf.buffer_resource
+ if resource is None:
continue
- data = vbuf.buffer.data
+ data = resource.data
offset = vbuf.buffer_offset + velem.src_offset + vbuf.stride*index
format = {
@@ -523,7 +525,7 @@ class Context(Dispatcher):
'PIPE_FORMAT_R16G16B16_SNORM': '3h',
}[velem.src_format]
- data = vbuf.buffer.data
+ data = resource.data
attribute = unpack_from(format, data, offset)
vertex.append(attribute)
@@ -551,7 +553,7 @@ class Context(Dispatcher):
self._state.draw = info
- if info.indexed:
+ if info.index_size != 0:
min_index, max_index = self._merge_indices(info)
else:
min_index = info.start
@@ -637,6 +639,25 @@ class Context(Dispatcher):
def tex_transfer_destroy(self, transfer):
self.interpreter.unregister_object(transfer)
+ def buffer_subdata(self, resource, usage, data, box=None, offset=None, size=None, level=None, stride=None, layer_stride=None):
+ if box is not None:
+ # XXX trace_context_transfer_unmap generates brokens buffer_subdata
+ assert offset is None
+ assert size is None
+ assert level == 0
+ offset = box.x
+ size = box.width
+ box = None
+
+ if resource is not None and resource.target == PIPE_BUFFER:
+ data = data.getValue()
+ assert len(data) >= size
+ assert offset + size <= len(resource.data)
+ resource.data[offset : offset + size] = data[:size]
+
+ def texture_subdata(self, resource, level, usage, box, data, stride, layer_stride):
+ pass
+
def transfer_inline_write(self, resource, level, usage, box, stride, layer_stride, data):
if resource is not None and resource.target == PIPE_BUFFER:
data = data.getValue()