[Nouveau] Coordinate systems on on nv10-era cards

Ilia Mirkin imirkin at alum.mit.edu
Sun Aug 10 16:32:20 PDT 2014


Hello,

I'm trying to debug why fbo-copyteximage-simple is failing, and I'm...
failing. It's an extremely simple test. I'm pretty sure that the
copyteximage part of it has nothing to do with the failure, at least
it behaves identically when I just return tex instead of copiex_tex.

Without any modifications, the test just renders one big red square. I
think there's something wrong with the coordinate systems since if I
change

glColor4fv(red);
piglit_draw_rect(0, 0, TEX_WIDTH / 2, TEX_HEIGHT / 2);

to instead be

piglit_draw_rect(1, 1, TEX_WIDTH / 2, TEX_HEIGHT / 2);

Then the result is all black. So I think that the coordinates are
being scaled up somewhere they're not supposed to be (or, conversely,
not being scaled down when they are supposed to be). The projection
matrix sent to the card is {x - 128, y - 128, z * 32767.5, 1 }. Should
it be scaling the coordinates down to the -1, 1 range instead? i.e. is
get_viewport_scale() just totally wrong? Or something in
nv10_emit_projection?

Ideas welcome :)

  -ilia


More information about the Nouveau mailing list