https://bugs.freedesktop.org/show_bug.cgi?id=110897
--- Comment #42 from Richard Thier u9vata@gmail.com --- (In reply to Marek Olšák from comment #40)
I'm afraid nobody remembers anymore how HyperZ works on r300. I can answer basic questions if you have any.
Hi!
Currently I have added this to radeon_drm_winsys.c:
385 if (ws->gen == DRV_R300) { 386 if (!radeon_get_drm_value(ws->fd, RADEON_INFO_NUM_GB_PIPES, 387 "GB pipe count", 388 &ws->info.r300_num_gb_pipes)) 389 return false; 390 + // FIXME: only works for my own setup (prenex): 391 + ws->info.r300_num_gb_pipes=1;
Now I have no problems so far. It can be that HyperZ code is just good as-is, but for some resoun the radeon_get_drm_value returns a bad gb_pipes number.
Currently testing with this a bit more throughly before moving further, but everything seems to work so far, just this is not a proper fix.
Some questions I can have:
1.) Is there any way to ensure how many pipes a card has? One pipeline seems to be really few for a GPU, but this is a mobile integrated card.
2.) Can the other indicated pipes be existing on my card but turned off for some reason?
3.) radeon_get_drm_value - is this in the kernel source tree? I will have a look later on the code behind it.