nv30: fp/rast may be null when validating fb/scissor due to clear
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
This commit is contained in:
parent
1184fba86e
commit
cb518f2fb2
1 changed files with 6 additions and 5 deletions
|
|
@ -225,14 +225,15 @@ nv30_validate_scissor(struct nv30_context *nv30)
|
|||
{
|
||||
struct nouveau_pushbuf *push = nv30->base.pushbuf;
|
||||
struct pipe_scissor_state *s = &nv30->scissor;
|
||||
bool rast_scissor = nv30->rast ? nv30->rast->pipe.scissor : false;
|
||||
|
||||
if (!(nv30->dirty & NV30_NEW_SCISSOR) &&
|
||||
nv30->rast->pipe.scissor != nv30->state.scissor_off)
|
||||
rast_scissor != nv30->state.scissor_off)
|
||||
return;
|
||||
nv30->state.scissor_off = !nv30->rast->pipe.scissor;
|
||||
nv30->state.scissor_off = !rast_scissor;
|
||||
|
||||
BEGIN_NV04(push, NV30_3D(SCISSOR_HORIZ), 2);
|
||||
if (nv30->rast->pipe.scissor) {
|
||||
if (rast_scissor) {
|
||||
PUSH_DATA (push, ((s->maxx - s->minx) << 16) | s->minx);
|
||||
PUSH_DATA (push, ((s->maxy - s->miny) << 16) | s->miny);
|
||||
} else {
|
||||
|
|
@ -344,9 +345,9 @@ nv30_validate_fragment(struct nv30_context *nv30)
|
|||
struct nv30_fragprog *fp = nv30->fragprog.program;
|
||||
|
||||
BEGIN_NV04(push, NV30_3D(RT_ENABLE), 1);
|
||||
PUSH_DATA (push, nv30->state.rt_enable & ~fp->rt_enable);
|
||||
PUSH_DATA (push, nv30->state.rt_enable & (fp ? ~fp->rt_enable : 0x1f));
|
||||
BEGIN_NV04(push, NV30_3D(COORD_CONVENTIONS), 1);
|
||||
PUSH_DATA (push, fp->coord_conventions | nv30->framebuffer.height);
|
||||
PUSH_DATA (push, (fp ? fp->coord_conventions : 0) | nv30->framebuffer.height);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue