mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 02:48:06 +02:00
nouveau: Rename the fields of vk_push
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
This commit is contained in:
parent
60fa24ee09
commit
ccd670cc2f
2 changed files with 44 additions and 44 deletions
|
|
@ -76,7 +76,7 @@ void
|
||||||
nouveau_ws_push_destroy(struct nouveau_ws_push *push)
|
nouveau_ws_push_destroy(struct nouveau_ws_push *push)
|
||||||
{
|
{
|
||||||
util_dynarray_foreach(&push->pushs, struct nouveau_ws_push_buffer, buf) {
|
util_dynarray_foreach(&push->pushs, struct nouveau_ws_push_buffer, buf) {
|
||||||
nouveau_ws_bo_unmap(buf->bo, buf->push.orig_map);
|
nouveau_ws_bo_unmap(buf->bo, buf->push.start);
|
||||||
nouveau_ws_bo_destroy(buf->bo);
|
nouveau_ws_bo_destroy(buf->bo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -93,8 +93,8 @@ nouveau_ws_push_space(struct nouveau_ws_push *push,
|
||||||
if (!count)
|
if (!count)
|
||||||
return &buf->push;
|
return &buf->push;
|
||||||
|
|
||||||
if (buf->push.map + count < buf->push.orig_map + (buf->bo->size / 4)) {
|
if (buf->push.end + count < buf->push.start + (buf->bo->size / 4)) {
|
||||||
buf->push.end = buf->push.map + count;
|
buf->push.limit = buf->push.end + count;
|
||||||
return &buf->push;
|
return &buf->push;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -140,8 +140,8 @@ nouveau_ws_push_append(struct nouveau_ws_push *push,
|
||||||
/* We don't support BO refs for now */
|
/* We don't support BO refs for now */
|
||||||
assert(other->bos.size == 0);
|
assert(other->bos.size == 0);
|
||||||
|
|
||||||
memcpy(p->map, other_buf->push.orig_map, count * sizeof(*p->map));
|
memcpy(p->end, other_buf->push.start, count * sizeof(*p->end));
|
||||||
p->map += count;
|
p->end += count;
|
||||||
p->last_size = NULL;
|
p->last_size = NULL;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
@ -152,16 +152,16 @@ nouveau_ws_push_valid(struct nouveau_ws_push *push) {
|
||||||
util_dynarray_foreach(&push->pushs, struct nouveau_ws_push_buffer, buf) {
|
util_dynarray_foreach(&push->pushs, struct nouveau_ws_push_buffer, buf) {
|
||||||
struct nouveau_ws_push_buffer *buf = _nouveau_ws_push_top(push);
|
struct nouveau_ws_push_buffer *buf = _nouveau_ws_push_top(push);
|
||||||
|
|
||||||
uint32_t *cur = buf->push.orig_map;
|
uint32_t *cur = buf->push.start;
|
||||||
|
|
||||||
/* submitting empty push buffers is probably a bug */
|
/* submitting empty push buffers is probably a bug */
|
||||||
assert(buf->push.map != buf->push.orig_map);
|
assert(buf->push.end != buf->push.start);
|
||||||
|
|
||||||
/* make sure we don't overrun the bo */
|
/* make sure we don't overrun the bo */
|
||||||
assert(buf->push.map <= buf->push.end);
|
assert(buf->push.end <= buf->push.limit);
|
||||||
|
|
||||||
/* parse all the headers to see if we get to buf->map */
|
/* parse all the headers to see if we get to buf->map */
|
||||||
while (cur < buf->push.map) {
|
while (cur < buf->push.end) {
|
||||||
uint32_t hdr = *cur;
|
uint32_t hdr = *cur;
|
||||||
uint32_t mthd = hdr >> 29;
|
uint32_t mthd = hdr >> 29;
|
||||||
|
|
||||||
|
|
@ -182,7 +182,7 @@ nouveau_ws_push_valid(struct nouveau_ws_push *push) {
|
||||||
}
|
}
|
||||||
|
|
||||||
cur++;
|
cur++;
|
||||||
assert(cur <= buf->push.map);
|
assert(cur <= buf->push.end);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -191,9 +191,9 @@ static void
|
||||||
nouveau_ws_push_dump(struct nouveau_ws_push *push, struct nouveau_ws_context *ctx)
|
nouveau_ws_push_dump(struct nouveau_ws_push *push, struct nouveau_ws_context *ctx)
|
||||||
{
|
{
|
||||||
util_dynarray_foreach(&push->pushs, struct nouveau_ws_push_buffer, buf) {
|
util_dynarray_foreach(&push->pushs, struct nouveau_ws_push_buffer, buf) {
|
||||||
uint32_t *cur = buf->push.orig_map;
|
uint32_t *cur = buf->push.start;
|
||||||
|
|
||||||
while (cur < buf->push.map) {
|
while (cur < buf->push.end) {
|
||||||
uint32_t hdr = *cur;
|
uint32_t hdr = *cur;
|
||||||
uint32_t type = hdr >> 29;
|
uint32_t type = hdr >> 29;
|
||||||
uint32_t inc;
|
uint32_t inc;
|
||||||
|
|
@ -203,7 +203,7 @@ nouveau_ws_push_dump(struct nouveau_ws_push *push, struct nouveau_ws_context *ct
|
||||||
uint32_t value = 0;
|
uint32_t value = 0;
|
||||||
bool is_immd = false;
|
bool is_immd = false;
|
||||||
|
|
||||||
printf("[0x%08" PRIxPTR "] HDR %x subch %i", cur - buf->push.orig_map, hdr, subchan);
|
printf("[0x%08" PRIxPTR "] HDR %x subch %i", cur - buf->push.start, hdr, subchan);
|
||||||
cur++;
|
cur++;
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
|
|
@ -340,7 +340,7 @@ nouveau_ws_push_submit(
|
||||||
/* Can't submit a CPU push */
|
/* Can't submit a CPU push */
|
||||||
assert(buf->bo);
|
assert(buf->bo);
|
||||||
|
|
||||||
if (buf->push.map == buf->push.orig_map)
|
if (buf->push.end == buf->push.start)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
req_bo[i].handle = buf->bo->handle;
|
req_bo[i].handle = buf->bo->handle;
|
||||||
|
|
@ -434,12 +434,12 @@ void nouveau_ws_push_reset(struct nouveau_ws_push *push)
|
||||||
bool first = true;
|
bool first = true;
|
||||||
util_dynarray_foreach(&push->pushs, struct nouveau_ws_push_buffer, buf) {
|
util_dynarray_foreach(&push->pushs, struct nouveau_ws_push_buffer, buf) {
|
||||||
if (first) {
|
if (first) {
|
||||||
buf->push.map = buf->push.orig_map;
|
buf->push.end = buf->push.start;
|
||||||
first = false;
|
first = false;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
nouveau_ws_bo_unmap(buf->bo, buf->push.orig_map);
|
nouveau_ws_bo_unmap(buf->bo, buf->push.start);
|
||||||
nouveau_ws_bo_destroy(buf->bo);
|
nouveau_ws_bo_destroy(buf->bo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,27 +19,27 @@ struct nouveau_ws_push_bo {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct nv_push {
|
struct nv_push {
|
||||||
uint32_t *orig_map;
|
uint32_t *start;
|
||||||
uint32_t *map;
|
|
||||||
uint32_t *end;
|
uint32_t *end;
|
||||||
|
uint32_t *limit;
|
||||||
uint32_t *last_size;
|
uint32_t *last_size;
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
nv_push_init(struct nv_push *push, uint32_t *start, size_t dw_count)
|
nv_push_init(struct nv_push *push, uint32_t *start, size_t dw_count)
|
||||||
{
|
{
|
||||||
push->orig_map = start;
|
push->start = start;
|
||||||
push->map = start;
|
push->end = start;
|
||||||
push->end = start + dw_count;
|
push->limit = start + dw_count;
|
||||||
push->last_size = NULL;
|
push->last_size = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline size_t
|
static inline size_t
|
||||||
nv_push_dw_count(struct nv_push *push)
|
nv_push_dw_count(struct nv_push *push)
|
||||||
{
|
{
|
||||||
assert(push->orig_map <= push->map);
|
assert(push->start <= push->end);
|
||||||
assert(push->map <= push->end);
|
assert(push->end <= push->limit);
|
||||||
return push->map - push->orig_map;
|
return push->end - push->start;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct nouveau_ws_push_buffer {
|
struct nouveau_ws_push_buffer {
|
||||||
|
|
@ -123,9 +123,9 @@ __push_mthd_size(struct nv_push *push, int subc, uint32_t mthd, unsigned size)
|
||||||
{
|
{
|
||||||
__push_verify(push);
|
__push_verify(push);
|
||||||
|
|
||||||
push->last_size = push->map;
|
push->last_size = push->end;
|
||||||
*push->map = NVC0_FIFO_PKHDR_SQ(subc, mthd, size);
|
*push->end = NVC0_FIFO_PKHDR_SQ(subc, mthd, size);
|
||||||
push->map++;
|
push->end++;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
|
|
@ -147,9 +147,9 @@ static inline void
|
||||||
__push_immd(struct nv_push *push, int subc, uint32_t mthd, uint32_t val)
|
__push_immd(struct nv_push *push, int subc, uint32_t mthd, uint32_t val)
|
||||||
{
|
{
|
||||||
__push_verify(push);
|
__push_verify(push);
|
||||||
push->last_size = push->map;
|
push->last_size = push->end;
|
||||||
*push->map = NVC0_FIFO_PKHDR_IL(subc, mthd, val);
|
*push->end = NVC0_FIFO_PKHDR_IL(subc, mthd, val);
|
||||||
push->map++;
|
push->end++;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define P_IMMD(push, class, mthd, args...) do { \
|
#define P_IMMD(push, class, mthd, args...) do { \
|
||||||
|
|
@ -173,9 +173,9 @@ static inline void
|
||||||
__push_1inc(struct nv_push *push, int subc, uint32_t mthd)
|
__push_1inc(struct nv_push *push, int subc, uint32_t mthd)
|
||||||
{
|
{
|
||||||
__push_verify(push);
|
__push_verify(push);
|
||||||
push->last_size = push->map;
|
push->last_size = push->end;
|
||||||
*push->map = NVC0_FIFO_PKHDR_1I(subc, mthd, 0);
|
*push->end = NVC0_FIFO_PKHDR_1I(subc, mthd, 0);
|
||||||
push->map++;
|
push->end++;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define P_1INC(push, class, mthd) __push_1inc(push, SUBC_##class, class##_##mthd)
|
#define P_1INC(push, class, mthd) __push_1inc(push, SUBC_##class, class##_##mthd)
|
||||||
|
|
@ -190,9 +190,9 @@ static inline void
|
||||||
__push_0inc(struct nv_push *push, int subc, uint32_t mthd)
|
__push_0inc(struct nv_push *push, int subc, uint32_t mthd)
|
||||||
{
|
{
|
||||||
__push_verify(push);
|
__push_verify(push);
|
||||||
push->last_size = push->map;
|
push->last_size = push->end;
|
||||||
*push->map = NVC0_FIFO_PKHDR_0I(subc, mthd, 0);
|
*push->end = NVC0_FIFO_PKHDR_0I(subc, mthd, 0);
|
||||||
push->map++;
|
push->end++;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define P_0INC(push, class, mthd) __push_0inc(push, SUBC_##class, class##_##mthd)
|
#define P_0INC(push, class, mthd) __push_0inc(push, SUBC_##class, class##_##mthd)
|
||||||
|
|
@ -225,8 +225,8 @@ P_INLINE_DATA(struct nv_push *push, uint32_t value)
|
||||||
{
|
{
|
||||||
if (nvk_push_update_count(push, 1)) {
|
if (nvk_push_update_count(push, 1)) {
|
||||||
/* push new value */
|
/* push new value */
|
||||||
*push->map = value;
|
*push->end = value;
|
||||||
push->map++;
|
push->end++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -235,8 +235,8 @@ P_INLINE_FLOAT(struct nv_push *push, float value)
|
||||||
{
|
{
|
||||||
if (nvk_push_update_count(push, 1)) {
|
if (nvk_push_update_count(push, 1)) {
|
||||||
/* push new value */
|
/* push new value */
|
||||||
*(float *)push->map = value;
|
*(float *)push->end = value;
|
||||||
push->map++;
|
push->end++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -245,8 +245,8 @@ P_INLINE_ARRAY(struct nv_push *push, const uint32_t *data, int num_dw)
|
||||||
{
|
{
|
||||||
if (nvk_push_update_count(push, num_dw)) {
|
if (nvk_push_update_count(push, num_dw)) {
|
||||||
/* push new value */
|
/* push new value */
|
||||||
memcpy(push->map, data, num_dw * 4);
|
memcpy(push->end, data, num_dw * 4);
|
||||||
push->map += num_dw;
|
push->end += num_dw;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -260,7 +260,7 @@ nvk_push_val(struct nv_push *push, uint32_t idx, uint32_t val)
|
||||||
UNUSED bool is_immd = (last_hdr_val & 0xe0000000) == 0x80000000;
|
UNUSED bool is_immd = (last_hdr_val & 0xe0000000) == 0x80000000;
|
||||||
UNUSED uint16_t last_method = (last_hdr_val & 0x1fff) << 2;
|
UNUSED uint16_t last_method = (last_hdr_val & 0x1fff) << 2;
|
||||||
|
|
||||||
uint16_t distance = push->map - push->last_size - 1;
|
uint16_t distance = push->end - push->last_size - 1;
|
||||||
if (is_0inc)
|
if (is_0inc)
|
||||||
distance = 0;
|
distance = 0;
|
||||||
else if (is_1inc)
|
else if (is_1inc)
|
||||||
|
|
@ -271,7 +271,7 @@ nvk_push_val(struct nv_push *push, uint32_t idx, uint32_t val)
|
||||||
assert(last_hdr_val);
|
assert(last_hdr_val);
|
||||||
assert(!is_immd);
|
assert(!is_immd);
|
||||||
assert(last_method == idx);
|
assert(last_method == idx);
|
||||||
assert(push->map < push->end);
|
assert(push->end < push->limit);
|
||||||
|
|
||||||
P_INLINE_DATA(push, val);
|
P_INLINE_DATA(push, val);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue