Hi, I was analyzing xf86 video nouveau code and found a possible bug on nouveau_allocate_surface (nv_accel_common.c src file) When setting tile_mode for NV_FERMI/NVC0 or higher families, it uses tile_mode to calculate height. However, instead of using "cfg.nvc0.tile_mode" it is using "cfg.nv50.tile_mode". See bellow: if (pNv->Architecture >= NV_FERMI) { if (height > 64) cfg.nvc0.tile_mode = 0x040; else if (height > 32) cfg.nvc0.tile_mode = 0x030; else if (height > 16) cfg.nvc0.tile_mode = 0x020; else if (height > 8) cfg.nvc0.tile_mode = 0x010; else cfg.nvc0.tile_mode = 0x000; if (usage_hint & NOUVEAU_CREATE_PIXMAP_ZETA) cfg.nvc0.memtype = (bpp == 16) ? 0x01 : 0x11; else cfg.nvc0.memtype = 0xfe; height = NOUVEAU_ALIGN(height, NVC0_TILE_HEIGHT(cfg.nv50.tile_mode)); If this is intentional, please mark this bug as Invalid and sorry for disturbing. Regards, Paulo Sérgio Travaglia
It's a typo. Fortunately, it shouldn't cause any issue as the fields should be at the same offsets due to the union. I've pushed a fix for the typo. Thanks for pointing it out!
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.