projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
i965: Fix regs read for FS_OPCODE_INTERP_PER_SLOT_OFFSET
[mesa.git]
/
src
/
mesa
/
drivers
/
dri
/
nouveau
/
nouveau_swtnl_t.c
diff --git
a/src/mesa/drivers/dri/nouveau/nouveau_swtnl_t.c
b/src/mesa/drivers/dri/nouveau/nouveau_swtnl_t.c
index f084f89d29ef9066e56439220e25fe21330eb3ff..0753c3a001903c90c414013bbb9693f56e4ac544 100644
(file)
--- a/
src/mesa/drivers/dri/nouveau/nouveau_swtnl_t.c
+++ b/
src/mesa/drivers/dri/nouveau/nouveau_swtnl_t.c
@@
-123,7
+123,7
@@
swtnl_choose_attrs(struct gl_context *ctx)
if (!sa->fields)
continue; /* Unsupported attribute. */
if (!sa->fields)
continue; /* Unsupported attribute. */
- if (
RENDERINPUTS_TEST(tnl->render_inputs_bitset,
i)) {
+ if (
tnl->render_inputs_bitset & BITFIELD64_BIT(
i)) {
if (sa->fields > 0)
fields = sa->fields;
else
if (sa->fields > 0)
fields = sa->fields;
else
@@
-185,6
+185,8
@@
swtnl_unbind_vertices(struct gl_context *ctx)
struct nouveau_render_state *render = to_render_state(ctx);
int i, attr;
struct nouveau_render_state *render = to_render_state(ctx);
int i, attr;
+ TAG(render_release_vertices)(ctx);
+
FOR_EACH_BOUND_ATTR(render, i, attr) {
nouveau_bo_ref(NULL, &render->attrs[attr].bo);
render->map[i] = -1;
FOR_EACH_BOUND_ATTR(render, i, attr) {
nouveau_bo_ref(NULL, &render->attrs[attr].bo);
render->map[i] = -1;
@@
-196,28
+198,28
@@
swtnl_unbind_vertices(struct gl_context *ctx)
static void
swtnl_flush_vertices(struct gl_context *ctx)
{
static void
swtnl_flush_vertices(struct gl_context *ctx)
{
- struct nouveau_
channel *chan = context_chan
(ctx);
+ struct nouveau_
pushbuf *push = context_push
(ctx);
struct nouveau_swtnl_state *swtnl = &to_render_state(ctx)->swtnl;
struct nouveau_swtnl_state *swtnl = &to_render_state(ctx)->swtnl;
- unsigned push, start = 0, count = swtnl->vertex_count;
+ unsigned
n
push, start = 0, count = swtnl->vertex_count;
RENDER_LOCALS(ctx);
swtnl_bind_vertices(ctx);
while (count) {
RENDER_LOCALS(ctx);
swtnl_bind_vertices(ctx);
while (count) {
-
push = get_max_vertices(ctx, NULL, AVAIL_RING(chan
));
-
push = MIN2(
push / 12 * 12, count);
- count -= push;
+
npush = get_max_vertices(ctx, NULL, PUSH_AVAIL(push
));
+
npush = MIN2(n
push / 12 * 12, count);
+ count -=
n
push;
- if (!push) {
-
FIRE_RING(chan
);
+ if (!
n
push) {
+
PUSH_KICK(push
);
continue;
}
BATCH_BEGIN(nvgl_primitive(swtnl->primitive));
continue;
}
BATCH_BEGIN(nvgl_primitive(swtnl->primitive));
- EMIT_VBO(L, ctx, start, 0, push);
+ EMIT_VBO(L, ctx, start, 0,
n
push);
BATCH_END();
BATCH_END();
-
FIRE_RING(chan
);
+
PUSH_KICK(push
);
}
swtnl_alloc_vertices(ctx);
}
swtnl_alloc_vertices(ctx);