Lines Matching refs:stream
53 void etna_cmd_stream_realloc(struct etna_cmd_stream *stream, size_t n)
62 size = ALIGN(stream->size + n, 1024);
68 buffer = realloc(stream->buffer, size * 4);
72 stream->buffer = buffer;
73 stream->size = size;
79 etna_cmd_stream_force_flush(stream);
83 etna_cmd_stream_priv(struct etna_cmd_stream *stream)
85 return (struct etna_cmd_stream_priv *)stream;
90 void (*force_flush)(struct etna_cmd_stream *stream, void *priv),
93 struct etna_cmd_stream_priv *stream = NULL;
100 stream = calloc(1, sizeof(*stream));
101 if (!stream) {
109 stream->base.buffer = malloc(size * sizeof(uint32_t));
110 if (!stream->base.buffer) {
115 stream->base.size = size;
116 stream->pipe = pipe;
117 stream->force_flush = force_flush;
118 stream->force_flush_priv = priv;
120 stream->bo_table = _mesa_pointer_hash_table_create(NULL);
122 return &stream->base;
125 if (stream)
126 etna_cmd_stream_del(&stream->base);
131 void etna_cmd_stream_del(struct etna_cmd_stream *stream)
133 struct etna_cmd_stream_priv *priv = etna_cmd_stream_priv(stream);
137 free(stream->buffer);
143 void etna_cmd_stream_force_flush(struct etna_cmd_stream *stream)
145 struct etna_cmd_stream_priv *priv = etna_cmd_stream_priv(stream);
148 priv->force_flush(stream, priv->force_flush_priv);
151 uint32_t etna_cmd_stream_timestamp(struct etna_cmd_stream *stream)
153 return etna_cmd_stream_priv(stream)->last_timestamp;
156 static uint32_t append_bo(struct etna_cmd_stream *stream, struct etna_bo *bo)
158 struct etna_cmd_stream_priv *priv = etna_cmd_stream_priv(stream);
174 static uint32_t bo2idx(struct etna_cmd_stream *stream, struct etna_bo *bo,
177 struct etna_cmd_stream_priv *priv = etna_cmd_stream_priv(stream);
187 idx = append_bo(stream, bo);
200 void etna_cmd_stream_flush(struct etna_cmd_stream *stream, int in_fence_fd,
203 struct etna_cmd_stream_priv *priv = etna_cmd_stream_priv(stream);
216 .stream = VOID2U64(stream->buffer),
217 .stream_size = stream->offset * 4, /* in bytes */
250 stream->offset = 0;
257 void etna_cmd_stream_reloc(struct etna_cmd_stream *stream,
260 struct etna_cmd_stream_priv *priv = etna_cmd_stream_priv(stream);
263 uint32_t bo_idx = bo2idx(stream, r->bo, r->flags);
272 reloc->submit_offset = stream->offset * 4; /* in bytes */
276 etna_cmd_stream_emit(stream, addr);
279 void etna_cmd_stream_ref_bo(struct etna_cmd_stream *stream, struct etna_bo *bo,
282 bo2idx(stream, bo, flags);
285 void etna_cmd_stream_perf(struct etna_cmd_stream *stream, const struct etna_perf *p)
287 struct etna_cmd_stream_priv *priv = etna_cmd_stream_priv(stream);
296 pmr->read_idx = bo2idx(stream, p->bo, ETNA_SUBMIT_BO_READ | ETNA_SUBMIT_BO_WRITE);