mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 22:18:13 +02:00
freedreno/computerator: C++ proofing
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22148>
This commit is contained in:
parent
5d2ddce99f
commit
6826a0ab14
4 changed files with 31 additions and 24 deletions
|
|
@ -164,7 +164,8 @@ emit_const(struct fd_ringbuffer *ring, struct kernel *kernel, uint32_t constid,
|
||||||
assert((constid % 4) == 0);
|
assert((constid % 4) == 0);
|
||||||
|
|
||||||
/* Overwrite appropriate entries with buffer addresses */
|
/* Overwrite appropriate entries with buffer addresses */
|
||||||
struct fd_bo **replacements = calloc(sizedwords, sizeof(struct fd_bo *));
|
struct fd_bo **replacements =
|
||||||
|
(struct fd_bo **)calloc(sizedwords, sizeof(struct fd_bo *));
|
||||||
for (int i = 0; i < MAX_BUFS; i++) {
|
for (int i = 0; i < MAX_BUFS; i++) {
|
||||||
if (kernel->buf_addr_regs[i] != INVALID_REG) {
|
if (kernel->buf_addr_regs[i] != INVALID_REG) {
|
||||||
int idx = kernel->buf_addr_regs[i];
|
int idx = kernel->buf_addr_regs[i];
|
||||||
|
|
@ -278,7 +279,8 @@ a4xx_emit_grid(struct kernel *kernel, uint32_t grid[3],
|
||||||
struct fd_submit *submit)
|
struct fd_submit *submit)
|
||||||
{
|
{
|
||||||
struct fd_ringbuffer *ring = fd_submit_new_ringbuffer(
|
struct fd_ringbuffer *ring = fd_submit_new_ringbuffer(
|
||||||
submit, 0, FD_RINGBUFFER_PRIMARY | FD_RINGBUFFER_GROWABLE);
|
submit, 0,
|
||||||
|
(enum fd_ringbuffer_flags)(FD_RINGBUFFER_PRIMARY | FD_RINGBUFFER_GROWABLE));
|
||||||
|
|
||||||
cs_program_emit(ring, kernel);
|
cs_program_emit(ring, kernel);
|
||||||
cs_const_emit(ring, kernel, grid);
|
cs_const_emit(ring, kernel, grid);
|
||||||
|
|
@ -333,7 +335,8 @@ a4xx_emit_grid(struct kernel *kernel, uint32_t grid[3],
|
||||||
struct backend *
|
struct backend *
|
||||||
a4xx_init(struct fd_device *dev, const struct fd_dev_id *dev_id)
|
a4xx_init(struct fd_device *dev, const struct fd_dev_id *dev_id)
|
||||||
{
|
{
|
||||||
struct a4xx_backend *a4xx_backend = calloc(1, sizeof(*a4xx_backend));
|
struct a4xx_backend *a4xx_backend =
|
||||||
|
(struct a4xx_backend *)calloc(1, sizeof(*a4xx_backend));
|
||||||
|
|
||||||
a4xx_backend->base = (struct backend){
|
a4xx_backend->base = (struct backend){
|
||||||
.assemble = a4xx_assemble,
|
.assemble = a4xx_assemble,
|
||||||
|
|
@ -341,8 +344,8 @@ a4xx_init(struct fd_device *dev, const struct fd_dev_id *dev_id)
|
||||||
.emit_grid = a4xx_emit_grid,
|
.emit_grid = a4xx_emit_grid,
|
||||||
};
|
};
|
||||||
|
|
||||||
a4xx_backend->compiler = ir3_compiler_create(dev, dev_id,
|
struct ir3_compiler_options compiler_options = {};
|
||||||
&(struct ir3_compiler_options) {});
|
a4xx_backend->compiler = ir3_compiler_create(dev, dev_id, &compiler_options);
|
||||||
a4xx_backend->dev = dev;
|
a4xx_backend->dev = dev;
|
||||||
|
|
||||||
return &a4xx_backend->base;
|
return &a4xx_backend->base;
|
||||||
|
|
|
||||||
|
|
@ -315,7 +315,7 @@ cs_ibo_emit(struct fd_ringbuffer *ring, struct fd_submit *submit,
|
||||||
unsigned width = sz & MASK(15);
|
unsigned width = sz & MASK(15);
|
||||||
unsigned height = sz >> 15;
|
unsigned height = sz >> 15;
|
||||||
|
|
||||||
OUT_RING(state, A6XX_TEX_CONST_0_FMT(FMT6_32_UINT) | A6XX_TEX_CONST_0_TILE_MODE(0));
|
OUT_RING(state, A6XX_TEX_CONST_0_FMT(FMT6_32_UINT) | A6XX_TEX_CONST_0_TILE_MODE(TILE6_LINEAR));
|
||||||
OUT_RING(state, A6XX_TEX_CONST_1_WIDTH(width) | A6XX_TEX_CONST_1_HEIGHT(height));
|
OUT_RING(state, A6XX_TEX_CONST_1_WIDTH(width) | A6XX_TEX_CONST_1_HEIGHT(height));
|
||||||
OUT_RING(state, A6XX_TEX_CONST_2_PITCH(0) |
|
OUT_RING(state, A6XX_TEX_CONST_2_PITCH(0) |
|
||||||
A6XX_TEX_CONST_2_STRUCTSIZETEXELS(1) |
|
A6XX_TEX_CONST_2_STRUCTSIZETEXELS(1) |
|
||||||
|
|
@ -402,7 +402,8 @@ a6xx_emit_grid(struct kernel *kernel, uint32_t grid[3],
|
||||||
struct ir3_kernel *ir3_kernel = to_ir3_kernel(kernel);
|
struct ir3_kernel *ir3_kernel = to_ir3_kernel(kernel);
|
||||||
struct a6xx_backend *a6xx_backend = to_a6xx_backend(ir3_kernel->backend);
|
struct a6xx_backend *a6xx_backend = to_a6xx_backend(ir3_kernel->backend);
|
||||||
struct fd_ringbuffer *ring = fd_submit_new_ringbuffer(
|
struct fd_ringbuffer *ring = fd_submit_new_ringbuffer(
|
||||||
submit, 0, FD_RINGBUFFER_PRIMARY | FD_RINGBUFFER_GROWABLE);
|
submit, 0,
|
||||||
|
(enum fd_ringbuffer_flags)(FD_RINGBUFFER_PRIMARY | FD_RINGBUFFER_GROWABLE));
|
||||||
|
|
||||||
cs_program_emit(ring, kernel);
|
cs_program_emit(ring, kernel);
|
||||||
cs_const_emit(ring, kernel, grid);
|
cs_const_emit(ring, kernel, grid);
|
||||||
|
|
@ -519,7 +520,8 @@ a6xx_read_perfcntrs(struct backend *b, uint64_t *results)
|
||||||
struct a6xx_backend *a6xx_backend = to_a6xx_backend(b);
|
struct a6xx_backend *a6xx_backend = to_a6xx_backend(b);
|
||||||
|
|
||||||
fd_bo_cpu_prep(a6xx_backend->query_mem, NULL, FD_BO_PREP_READ);
|
fd_bo_cpu_prep(a6xx_backend->query_mem, NULL, FD_BO_PREP_READ);
|
||||||
struct fd6_query_sample *samples = fd_bo_map(a6xx_backend->query_mem);
|
struct fd6_query_sample *samples =
|
||||||
|
(struct fd6_query_sample *)fd_bo_map(a6xx_backend->query_mem);
|
||||||
|
|
||||||
for (unsigned i = 0; i < a6xx_backend->num_perfcntrs; i++) {
|
for (unsigned i = 0; i < a6xx_backend->num_perfcntrs; i++) {
|
||||||
results[i] = samples[i].result;
|
results[i] = samples[i].result;
|
||||||
|
|
@ -529,7 +531,8 @@ a6xx_read_perfcntrs(struct backend *b, uint64_t *results)
|
||||||
struct backend *
|
struct backend *
|
||||||
a6xx_init(struct fd_device *dev, const struct fd_dev_id *dev_id)
|
a6xx_init(struct fd_device *dev, const struct fd_dev_id *dev_id)
|
||||||
{
|
{
|
||||||
struct a6xx_backend *a6xx_backend = calloc(1, sizeof(*a6xx_backend));
|
struct a6xx_backend *a6xx_backend =
|
||||||
|
(struct a6xx_backend *)calloc(1, sizeof(*a6xx_backend));
|
||||||
|
|
||||||
a6xx_backend->base = (struct backend){
|
a6xx_backend->base = (struct backend){
|
||||||
.assemble = a6xx_assemble,
|
.assemble = a6xx_assemble,
|
||||||
|
|
@ -539,8 +542,8 @@ a6xx_init(struct fd_device *dev, const struct fd_dev_id *dev_id)
|
||||||
.read_perfcntrs = a6xx_read_perfcntrs,
|
.read_perfcntrs = a6xx_read_perfcntrs,
|
||||||
};
|
};
|
||||||
|
|
||||||
a6xx_backend->compiler = ir3_compiler_create(dev, dev_id,
|
struct ir3_compiler_options compiler_options = {};
|
||||||
&(struct ir3_compiler_options){});
|
a6xx_backend->compiler = ir3_compiler_create(dev, dev_id, &compiler_options);
|
||||||
a6xx_backend->dev = dev;
|
a6xx_backend->dev = dev;
|
||||||
|
|
||||||
a6xx_backend->info = fd_dev_info(dev_id);
|
a6xx_backend->info = fd_dev_info(dev_id);
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
struct ir3_kernel *
|
struct ir3_kernel *
|
||||||
ir3_asm_assemble(struct ir3_compiler *c, FILE *in)
|
ir3_asm_assemble(struct ir3_compiler *c, FILE *in)
|
||||||
{
|
{
|
||||||
struct ir3_kernel *kernel = calloc(1, sizeof(*kernel));
|
struct ir3_kernel *kernel = (struct ir3_kernel *)calloc(1, sizeof(*kernel));
|
||||||
struct ir3_shader *shader = ir3_parse_asm(c, &kernel->info, in);
|
struct ir3_shader *shader = ir3_parse_asm(c, &kernel->info, in);
|
||||||
if (!shader)
|
if (!shader)
|
||||||
errx(-1, "assembler failed");
|
errx(-1, "assembler failed");
|
||||||
|
|
@ -62,5 +62,5 @@ ir3_asm_assemble(struct ir3_compiler *c, FILE *in)
|
||||||
void
|
void
|
||||||
ir3_asm_disassemble(struct ir3_kernel *k, FILE *out)
|
ir3_asm_disassemble(struct ir3_kernel *k, FILE *out)
|
||||||
{
|
{
|
||||||
ir3_shader_disasm(k->v, k->bin, out);
|
ir3_shader_disasm(k->v, (uint32_t *)k->bin, out);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -175,7 +175,7 @@ parse_perfcntrs(const struct fd_dev_id *dev_id, const char *perfcntrstr,
|
||||||
unsigned cnt = 0;
|
unsigned cnt = 0;
|
||||||
|
|
||||||
groups = fd_perfcntrs(dev_id, &num_groups);
|
groups = fd_perfcntrs(dev_id, &num_groups);
|
||||||
enabled_counters = calloc(num_groups, sizeof(enabled_counters[0]));
|
enabled_counters = (uint32_t *) calloc(num_groups, sizeof(enabled_counters[0]));
|
||||||
|
|
||||||
cnames = strdup(perfcntrstr);
|
cnames = strdup(perfcntrstr);
|
||||||
while ((s = strstr(cnames, ","))) {
|
while ((s = strstr(cnames, ","))) {
|
||||||
|
|
@ -183,12 +183,13 @@ parse_perfcntrs(const struct fd_dev_id *dev_id, const char *perfcntrstr,
|
||||||
s[0] = '\0';
|
s[0] = '\0';
|
||||||
cnames = &s[1];
|
cnames = &s[1];
|
||||||
|
|
||||||
counters = realloc(counters, ++cnt * sizeof(counters[0]));
|
counters =
|
||||||
|
(struct perfcntr *)realloc(counters, ++cnt * sizeof(counters[0]));
|
||||||
setup_counter(name, &counters[cnt - 1]);
|
setup_counter(name, &counters[cnt - 1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
char *name = cnames;
|
char *name = cnames;
|
||||||
counters = realloc(counters, ++cnt * sizeof(counters[0]));
|
counters = (struct perfcntr *)realloc(counters, ++cnt * sizeof(counters[0]));
|
||||||
setup_counter(name, &counters[cnt - 1]);
|
setup_counter(name, &counters[cnt - 1]);
|
||||||
|
|
||||||
*num_perfcntrs = cnt;
|
*num_perfcntrs = cnt;
|
||||||
|
|
@ -222,17 +223,21 @@ main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
case 'g':
|
case 'g':
|
||||||
ret = sscanf(optarg, "%u,%u,%u", &grid[0], &grid[1], &grid[2]);
|
ret = sscanf(optarg, "%u,%u,%u", &grid[0], &grid[1], &grid[2]);
|
||||||
if (ret != 3)
|
if (ret != 3) {
|
||||||
goto usage;
|
usage(argv[0]);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 'h':
|
case 'h':
|
||||||
goto usage;
|
usage(argv[0]);
|
||||||
|
return -1;
|
||||||
case 'p':
|
case 'p':
|
||||||
perfcntrstr = optarg;
|
perfcntrstr = optarg;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
printf("unrecognized arg: %c\n", opt);
|
printf("unrecognized arg: %c\n", opt);
|
||||||
goto usage;
|
usage(argv[0]);
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -305,8 +310,4 @@ main(int argc, char **argv)
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
usage:
|
|
||||||
usage(argv[0]);
|
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue