summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/etnaviv/etna.c56
-rw-r--r--src/etnaviv/etna_bo.c12
-rw-r--r--src/etnaviv/viv.c66
3 files changed, 67 insertions, 67 deletions
diff --git a/src/etnaviv/etna.c b/src/etnaviv/etna.c
index b78445d..64feb0a 100644
--- a/src/etnaviv/etna.c
+++ b/src/etnaviv/etna.c
@@ -105,13 +105,13 @@ static int gpu_context_clear(struct etna_ctx *ctx)
*/
int rv;
#ifdef DEBUG
- printf("gpu_context_clear (context %i)\n", (int)GCCTX(ctx)->id);
+ fprintf(stderr, "gpu_context_clear (context %i)\n", (int)GCCTX(ctx)->id);
#endif
if(GCCTX(ctx)->inUse != NULL &&
*GCCTX(ctx)->inUse)
{
#ifdef DEBUG
- printf("gpu_context_clear: context was in use, deferred freeing and reallocating it\n");
+ fprintf(stderr, "gpu_context_clear: context was in use, deferred freeing and reallocating it\n");
#endif
if((rv = etna_bo_del(ctx->conn, ctx->ctx_bo, ctx->queue)) != ETNA_OK)
{
@@ -206,7 +206,7 @@ static int gpu_context_finish_up(struct etna_ctx *ctx)
/* Update buffer size to final value */
GCCTX(ctx)->bufferSize = ptr*4;
#ifdef DEBUG
- printf("gpu_context_finish_up: bufferSize %i link %p inUse %p\n",
+ fprintf(stderr, "gpu_context_finish_up: bufferSize %i link %p inUse %p\n",
(int)GCCTX(ctx)->bufferSize, GCCTX(ctx)->link, GCCTX(ctx)->inUse);
#endif
return ETNA_OK;
@@ -231,7 +231,7 @@ static int gpu_context_initialize(struct etna_ctx *ctx)
}
#ifdef DEBUG
- printf("Context 0x%08x\n", (int)id.u.Attach.context);
+ fprintf(stderr, "Context 0x%08x\n", (int)id.u.Attach.context);
#endif
ctx->ctx = VIV_TO_HANDLE(id.u.Attach.context);
@@ -262,7 +262,7 @@ int etna_create(struct viv_conn *conn, struct etna_ctx **ctx_out)
return ETNA_INTERNAL_ERROR;
}
#ifdef DEBUG
- printf("Created user signal %i\n", ctx->sig_id);
+ fprintf(stderr, "Created user signal %i\n", ctx->sig_id);
#endif
/* Allocate command buffers, and create a synchronization signal for each.
@@ -294,7 +294,7 @@ int etna_create(struct viv_conn *conn, struct etna_ctx **ctx_out)
return ETNA_INTERNAL_ERROR;
}
#ifdef DEBUG
- printf("Allocated buffer %i: phys=%08x log=%08x bytes=%08x [signal %i]\n", x,
+ fprintf(stderr, "Allocated buffer %i: phys=%08x log=%08x bytes=%08x [signal %i]\n", x,
(uint32_t)buf0_physical, (uint32_t)buf0_logical, buf0_bytes, ctx->cmdbufi[x].sig);
#endif
}
@@ -330,12 +330,12 @@ static int switch_next_buffer(struct etna_ctx *ctx)
{
int next_buf_id = (ctx->cur_buf + 1) % NUM_COMMAND_BUFFERS;
#if 0
- printf("Switching to new buffer %i\n", next_buf_id);
+ fprintf(stderr, "Switching to new buffer %i\n", next_buf_id);
#endif
if(viv_user_signal_wait(ctx->conn, ctx->cmdbufi[next_buf_id].sig_id, VIV_WAIT_INDEFINITE) != 0)
{
#ifdef DEBUG
- printf("Error waiting for command buffer sync signal\n");
+ fprintf(stderr, "Error waiting for command buffer sync signal\n");
#endif
return ETNA_INTERNAL_ERROR;
}
@@ -344,7 +344,7 @@ static int switch_next_buffer(struct etna_ctx *ctx)
ctx->buf = VIV_TO_PTR(ctx->cmdbuf[next_buf_id]->logical);
ctx->offset = ctx->cmdbuf[next_buf_id]->offset / 4;
#ifdef DEBUG
- printf("Switched to command buffer %i\n", ctx->cur_buf);
+ fprintf(stderr, "Switched to command buffer %i\n", ctx->cur_buf);
#endif
return ETNA_OK;
}
@@ -378,35 +378,35 @@ int _etna_reserve_internal(struct etna_ctx *ctx, size_t n)
{
int status;
#ifdef DEBUG
- printf("Buffer full\n");
+ fprintf(stderr, "Buffer full\n");
#endif
if((ctx->offset*4 + END_COMMIT_CLEARANCE) > COMMAND_BUFFER_SIZE)
{
- printf("%s: Command buffer overflow! This is likely a programming error in the GPU driver.\n", __func__);
+ fprintf(stderr, "%s: Command buffer overflow! This is likely a programming error in the GPU driver.\n", __func__);
abort();
}
#ifdef GCABI_HAS_CONTEXT
if(ctx->cur_buf == ETNA_CTX_BUFFER)
{
- printf("%s: Context buffer overflow! This is likely a programming error in the GPU driver.\n", __func__);
+ fprintf(stderr, "%s: Context buffer overflow! This is likely a programming error in the GPU driver.\n", __func__);
abort();
}
#endif
if(ctx->cur_buf != ETNA_NO_BUFFER)
{
#if 0
- printf("Submitting old buffer %i\n", ctx->cur_buf);
+ fprintf(stderr, "Submitting old buffer %i\n", ctx->cur_buf);
#endif
/* Queue signal to signify when buffer is available again */
if((status = etna_queue_signal(ctx->queue, ctx->cmdbufi[ctx->cur_buf].sig_id, VIV_WHERE_COMMAND)) != ETNA_OK)
{
- printf("%s: queue signal for old buffer failed: %i\n", __func__, status);
+ fprintf(stderr, "%s: queue signal for old buffer failed: %i\n", __func__, status);
abort(); /* buffer is in invalid state XXX need some kind of recovery */
}
/* Otherwise, if there is something to be committed left in the current command buffer, commit it */
if((status = etna_flush(ctx, NULL)) != ETNA_OK)
{
- printf("%s: reserve failed: %i\n", __func__, status);
+ fprintf(stderr, "%s: reserve failed: %i\n", __func__, status);
abort(); /* buffer is in invalid state XXX need some kind of recovery */
}
}
@@ -414,7 +414,7 @@ int _etna_reserve_internal(struct etna_ctx *ctx, size_t n)
/* Move on to next buffer if not enough free in current one */
if((status = switch_next_buffer(ctx)) != ETNA_OK)
{
- printf("%s: can't switch to next command buffer: %i\n", __func__, status);
+ fprintf(stderr, "%s: can't switch to next command buffer: %i\n", __func__, status);
abort(); /* Buffer is in invalid state XXX need some kind of recovery.
This could involve waiting and re-uploading the context state. */
}
@@ -442,7 +442,7 @@ int etna_flush(struct etna_ctx *ctx, uint32_t *fence_out)
/* Get next fence ID */
if((status = _viv_fence_new(ctx->conn, &fence, &signal)) != VIV_STATUS_OK)
{
- printf("%s: could not request fence\n", __func__);
+ fprintf(stderr, "%s: could not request fence\n", __func__);
goto unlock_and_return_status;
}
} while(fence == 0); /* don't return fence handle 0 as it is interpreted as error value downstream */
@@ -453,7 +453,7 @@ int etna_flush(struct etna_ctx *ctx, uint32_t *fence_out)
*/
if((status = etna_queue_signal(ctx->queue, signal, VIV_WHERE_PIXEL)) != ETNA_OK)
{
- printf("%s: error %i queueing fence signal %i\n", __func__, status, signal);
+ fprintf(stderr, "%s: error %i queueing fence signal %i\n", __func__, status, signal);
goto unlock_and_return_status;
}
*fence_out = fence;
@@ -484,7 +484,7 @@ int etna_flush(struct etna_ctx *ctx, uint32_t *fence_out)
cur_buf->offset = ctx->offset*4; /* Copy over current end offset into CMDBUF, for kernel */
#ifdef DEBUG
- printf("Committing command buffer %i startOffset=%x offset=%x\n", ctx->cur_buf,
+ fprintf(stderr, "Committing command buffer %i startOffset=%x offset=%x\n", ctx->cur_buf,
cur_buf->startOffset, ctx->offset*4);
#endif
#ifdef DEBUG_CMDBUF
@@ -520,12 +520,12 @@ int etna_flush(struct etna_ctx *ctx, uint32_t *fence_out)
/* Start building GPU context */
if((status = gpu_context_build_start(ctx)) != ETNA_OK)
{
- printf("%s: gpu_context_build_start failed with status %i\n", __func__, status);
+ fprintf(stderr, "%s: gpu_context_build_start failed with status %i\n", __func__, status);
return status;
}
if((status = ctx->ctx_cb(ctx->ctx_cb_data, ctx, &initial_pipe, &final_pipe)) != ETNA_OK)
{
- printf("%s: Context callback failed with status %i\n", __func__, status);
+ fprintf(stderr, "%s: Context callback failed with status %i\n", __func__, status);
return status;
}
/* Set initial pipe in context */
@@ -533,7 +533,7 @@ int etna_flush(struct etna_ctx *ctx, uint32_t *fence_out)
/* Finish building GPU context */
if((status = gpu_context_build_end(ctx, final_pipe)) != ETNA_OK)
{
- printf("%s: gpu_context_build_end failed with status %i\n", __func__, status);
+ fprintf(stderr, "%s: gpu_context_build_end failed with status %i\n", __func__, status);
return status;
}
}
@@ -555,9 +555,9 @@ int etna_flush(struct etna_ctx *ctx, uint32_t *fence_out)
ctx->offset = cur_buf->offset / 4;
#ifdef DEBUG
#ifdef GCABI_HAS_CONTEXT
- printf(" New start offset: %x New offset: %x Contextbuffer used: %i\n", cur_buf->startOffset, cur_buf->offset, *(GCCTX(ctx)->inUse));
+ fprintf(stderr, " New start offset: %x New offset: %x Contextbuffer used: %i\n", cur_buf->startOffset, cur_buf->offset, *(GCCTX(ctx)->inUse));
#else
- printf(" New start offset: %x New offset: %x\n", cur_buf->startOffset, cur_buf->offset);
+ fprintf(stderr, " New start offset: %x New offset: %x\n", cur_buf->startOffset, cur_buf->offset);
#endif
#endif
return ETNA_OK;
@@ -581,7 +581,7 @@ int etna_finish(struct etna_ctx *ctx)
if((status = etna_flush(ctx, NULL)) != ETNA_OK)
return status;
#ifdef DEBUG
- printf("finish: Waiting for signal...\n");
+ fprintf(stderr, "finish: Waiting for signal...\n");
#endif
/* Wait for signal */
if(viv_user_signal_wait(ctx->conn, ctx->sig_id, VIV_WAIT_INDEFINITE) != 0)
@@ -669,11 +669,11 @@ void etna_dump_cmd_buffer(struct etna_ctx *ctx)
uint32_t start_offset = ctx->cmdbuf[ctx->cur_buf]->startOffset/4 + 8;
uint32_t *buf = &ctx->buf[start_offset];
size_t size = ctx->offset - start_offset;
- printf("cmdbuf:\n");
+ fprintf(stderr, "cmdbuf:\n");
for(unsigned idx=0; idx<size; ++idx)
{
- printf(":%08x ", buf[idx]);
- printf("\n");
+ fprintf(stderr, ":%08x ", buf[idx]);
+ fprintf(stderr, "\n");
}
}
diff --git a/src/etnaviv/etna_bo.c b/src/etnaviv/etna_bo.c
index 655e856..6777cbe 100644
--- a/src/etnaviv/etna_bo.c
+++ b/src/etnaviv/etna_bo.c
@@ -131,7 +131,7 @@ static int etna_bo_lock(struct viv_conn *conn, struct etna_bo *mem)
return ETNA_INTERNAL_ERROR;
}
#ifdef DEBUG
- printf("Locked: phys=%08x log=%08x\n", (uint32_t)mem->address, (uint32_t)mem->logical);
+ fprintf(stderr, "Locked: phys=%08x log=%08x\n", (uint32_t)mem->address, (uint32_t)mem->logical);
#endif
return ETNA_OK;
@@ -219,7 +219,7 @@ struct etna_bo* etna_bo_new(struct viv_conn *conn, size_t bytes, uint32_t flags)
return NULL;
}
#ifdef DEBUG
- printf("Allocated: type:%s mem=%p node=%08x size=%08x\n", etna_bo_surf_type(mem), mem, (uint32_t)mem->node, mem->size);
+ fprintf(stderr, "Allocated: type:%s mem=%p node=%08x size=%08x\n", etna_bo_surf_type(mem), mem, (uint32_t)mem->node, mem->size);
#endif
int status = etna_bo_lock(conn, mem);
if(status != ETNA_OK)
@@ -304,26 +304,26 @@ int etna_bo_del(struct viv_conn *conn, struct etna_bo *mem, struct etna_queue *q
{
if((rv = etna_bo_unlock(conn, mem, queue)) != ETNA_OK)
{
- printf("etna: Warning: could not unlock memory\n");
+ fprintf(stderr, "etna: Warning: could not unlock memory\n");
}
}
if(queue)
{
if((rv = etna_queue_free_vidmem(queue, mem->node)) != ETNA_OK)
{
- printf("etna: Warning: could not queue free video memory\n");
+ fprintf(stderr, "etna: Warning: could not queue free video memory\n");
}
} else {
if((rv = viv_free_vidmem(conn, mem->node)) != ETNA_OK)
{
- printf("etna: Warning: could not free video memory\n");
+ fprintf(stderr, "etna: Warning: could not free video memory\n");
}
}
break;
case ETNA_BO_TYPE_VIDMEM_EXTERNAL:
if((rv = etna_bo_unlock(conn, mem, queue)) != ETNA_OK)
{
- printf("etna: Warning: could not unlock memory\n");
+ fprintf(stderr, "etna: Warning: could not unlock memory\n");
}
break;
case ETNA_BO_TYPE_USERMEM:
diff --git a/src/etnaviv/viv.c b/src/etnaviv/viv.c
index 6c62731..bf8ad53 100644
--- a/src/etnaviv/viv.c
+++ b/src/etnaviv/viv.c
@@ -120,7 +120,7 @@ int viv_invoke(struct viv_conn *conn, struct _gcsHAL_INTERFACE *cmd)
#ifdef DEBUG
if(cmd->status != 0)
{
- printf("Command %i failed with status %i\n", cmd->command, cmd->status);
+ fprintf(stderr, "Command %i failed with status %i\n", cmd->command, cmd->status);
}
#endif
return cmd->status;
@@ -227,14 +227,14 @@ int viv_open(enum viv_hw_type hw_type, struct viv_conn **out)
"Vivante GPL kernel driver %i.%i.%i.%i",
conn->kernel_driver.major, conn->kernel_driver.minor,
conn->kernel_driver.patch, conn->kernel_driver.build);
- printf("Kernel: %s\n", conn->kernel_driver.name);
+ fprintf(stderr, "Kernel: %s\n", conn->kernel_driver.name);
/* Determine base address */
id.command = gcvHAL_GET_BASE_ADDRESS;
if((err=viv_invoke(conn, &id)) != gcvSTATUS_OK)
goto error;
conn->base_address = id.u.GetBaseAddress.baseAddress;
- printf("Physical address of internal memory: %08x\n", conn->base_address);
+ fprintf(stderr, "Physical address of internal memory: %08x\n", conn->base_address);
/* Get chip identity */
id.command = gcvHAL_QUERY_CHIP_IDENTITY;
@@ -246,13 +246,13 @@ int viv_open(enum viv_hw_type hw_type, struct viv_conn **out)
id.command = gcvHAL_QUERY_VIDEO_MEMORY;
if((err=viv_invoke(conn, &id)) != gcvSTATUS_OK)
goto error;
- printf("* Video memory:\n");
- printf(" Internal physical: 0x%08x\n", (uint32_t)id.u.QueryVideoMemory.internalPhysical);
- printf(" Internal size: 0x%08x\n", (uint32_t)id.u.QueryVideoMemory.internalSize);
- printf(" External physical: %08x\n", (uint32_t)id.u.QueryVideoMemory.externalPhysical);
- printf(" External size: 0x%08x\n", (uint32_t)id.u.QueryVideoMemory.externalSize);
- printf(" Contiguous physical: 0x%08x\n", (uint32_t)id.u.QueryVideoMemory.contiguousPhysical);
- printf(" Contiguous size: 0x%08x\n", (uint32_t)id.u.QueryVideoMemory.contiguousSize);
+ fprintf(stderr, "* Video memory:\n");
+ fprintf(stderr, " Internal physical: 0x%08x\n", (uint32_t)id.u.QueryVideoMemory.internalPhysical);
+ fprintf(stderr, " Internal size: 0x%08x\n", (uint32_t)id.u.QueryVideoMemory.internalSize);
+ fprintf(stderr, " External physical: %08x\n", (uint32_t)id.u.QueryVideoMemory.externalPhysical);
+ fprintf(stderr, " External size: 0x%08x\n", (uint32_t)id.u.QueryVideoMemory.externalSize);
+ fprintf(stderr, " Contiguous physical: 0x%08x\n", (uint32_t)id.u.QueryVideoMemory.contiguousPhysical);
+ fprintf(stderr, " Contiguous size: 0x%08x\n", (uint32_t)id.u.QueryVideoMemory.contiguousSize);
conn->mem_base = (viv_addr_t)id.u.QueryVideoMemory.contiguousPhysical;
conn->mem = mmap(NULL, id.u.QueryVideoMemory.contiguousSize, PROT_READ|PROT_WRITE, MAP_SHARED, conn->fd, conn->mem_base);
@@ -501,24 +501,24 @@ int viv_user_signal_destroy(struct viv_conn *conn, int sig_id)
void viv_show_chip_info(struct viv_conn *conn)
{
- printf("* Chip identity:\n");
- printf(" Chip model: %08x\n", conn->chip.chip_model);
- printf(" Chip revision: %08x\n", conn->chip.chip_revision);
- printf(" Chip features: 0x%08x\n", conn->chip.chip_features[0]);
- printf(" Chip minor features 0: 0x%08x\n", conn->chip.chip_features[1]);
- printf(" Chip minor features 1: 0x%08x\n", conn->chip.chip_features[2]);
- printf(" Chip minor features 2: 0x%08x\n", conn->chip.chip_features[3]);
- printf(" Chip minor features 3: 0x%08x\n", conn->chip.chip_features[4]);
- printf(" Stream count: 0x%08x\n", conn->chip.stream_count);
- printf(" Register max: 0x%08x\n", conn->chip.register_max);
- printf(" Thread count: 0x%08x\n", conn->chip.thread_count);
- printf(" Shader core count: 0x%08x\n", conn->chip.shader_core_count);
- printf(" Vertex cache size: 0x%08x\n", conn->chip.vertex_cache_size);
- printf(" Vertex output buffer size: 0x%08x\n", conn->chip.vertex_output_buffer_size);
- printf(" Pixel pipes: 0x%08x\n", conn->chip.pixel_pipes);
- printf(" Instruction count: 0x%08x\n", conn->chip.instruction_count);
- printf(" Num constants: 0x%08x\n", conn->chip.num_constants);
- printf(" Buffer size: 0x%08x\n", conn->chip.buffer_size);
+ fprintf(stderr, "* Chip identity:\n");
+ fprintf(stderr, " Chip model: %08x\n", conn->chip.chip_model);
+ fprintf(stderr, " Chip revision: %08x\n", conn->chip.chip_revision);
+ fprintf(stderr, " Chip features: 0x%08x\n", conn->chip.chip_features[0]);
+ fprintf(stderr, " Chip minor features 0: 0x%08x\n", conn->chip.chip_features[1]);
+ fprintf(stderr, " Chip minor features 1: 0x%08x\n", conn->chip.chip_features[2]);
+ fprintf(stderr, " Chip minor features 2: 0x%08x\n", conn->chip.chip_features[3]);
+ fprintf(stderr, " Chip minor features 3: 0x%08x\n", conn->chip.chip_features[4]);
+ fprintf(stderr, " Stream count: 0x%08x\n", conn->chip.stream_count);
+ fprintf(stderr, " Register max: 0x%08x\n", conn->chip.register_max);
+ fprintf(stderr, " Thread count: 0x%08x\n", conn->chip.thread_count);
+ fprintf(stderr, " Shader core count: 0x%08x\n", conn->chip.shader_core_count);
+ fprintf(stderr, " Vertex cache size: 0x%08x\n", conn->chip.vertex_cache_size);
+ fprintf(stderr, " Vertex output buffer size: 0x%08x\n", conn->chip.vertex_output_buffer_size);
+ fprintf(stderr, " Pixel pipes: 0x%08x\n", conn->chip.pixel_pipes);
+ fprintf(stderr, " Instruction count: 0x%08x\n", conn->chip.instruction_count);
+ fprintf(stderr, " Num constants: 0x%08x\n", conn->chip.num_constants);
+ fprintf(stderr, " Buffer size: 0x%08x\n", conn->chip.buffer_size);
}
int viv_reset(struct viv_conn *conn)
@@ -623,7 +623,7 @@ int _viv_fence_new(struct viv_conn *conn, uint32_t *fence_out, int *signal_out)
if(conn->fences_pending & (1<<fence_mod_signals)) /* fence still pending? */
{
#ifdef FENCE_DEBUG
- printf("Waiting for old fence %08x (which is after %08x)\n", oldfence,
+ fprintf(stderr, "Waiting for old fence %08x (which is after %08x)\n", oldfence,
conn->last_fence_id);
#endif
if((status = viv_user_signal_wait(conn, signal, VIV_WAIT_INDEFINITE)) != VIV_STATUS_OK)
@@ -638,7 +638,7 @@ int _viv_fence_new(struct viv_conn *conn, uint32_t *fence_out, int *signal_out)
*fence_out = fence;
*signal_out = signal;
#ifdef FENCE_DEBUG
- printf("New fence: %08x [signal %08x], pending %08x\n", fence, signal, conn->fences_pending);
+ fprintf(stderr, "New fence: %08x [signal %08x], pending %08x\n", fence, signal, conn->fences_pending);
#endif
return VIV_STATUS_OK;
}
@@ -659,7 +659,7 @@ int viv_fence_finish(struct viv_conn *conn, uint32_t fence, uint32_t timeout)
if(signal == -1)
{
#ifdef FENCE_DEBUG
- printf("Fence already expired: %08x\n", fence);
+ fprintf(stderr, "Fence already expired: %08x\n", fence);
#endif
goto unlock_and_ok; /* fence too old, it must have been signalled already */
}
@@ -674,7 +674,7 @@ int viv_fence_finish(struct viv_conn *conn, uint32_t fence, uint32_t timeout)
VIV_FENCE_BEFORE_EQ(fence, conn->last_fence_id))
{
#ifdef FENCE_DEBUG
- printf("Fence already signaled: %08x, pending %i, newer than %08x; next fence id is %08x\n",
+ fprintf(stderr, "Fence already signaled: %08x, pending %i, newer than %08x; next fence id is %08x\n",
fence,
(conn->fences_pending >> fence_mod_signals)&1,
conn->last_fence_id, conn->next_fence_id);
@@ -694,7 +694,7 @@ int viv_fence_finish(struct viv_conn *conn, uint32_t fence, uint32_t timeout)
{
conn->last_fence_id = fence;
#ifdef FENCE_DEBUG
- printf("Last fence id updated to %i\n", conn->last_fence_id);
+ fprintf(stderr, "Last fence id updated to %i\n", conn->last_fence_id);
#endif
}
pthread_mutex_unlock(&conn->fence_mutex);