If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

I see the same on my FreeBSD 6.3 system with ATI 9250 256 MB AGP card which showed the mapped videoRAM to be 128 MB. I replaced the card with ATI 9550 AGP 256MB card and it showed the right mapped videoRAM (256 MB).

After some google search, I came across several posts mentioning that it is PCI_BAR that is setting the range and the actual memory is still 512MB and not half.

So, I uploaded 4 512x512x64 RGBA textures into the ATI X1650 512MB card (on the Fedora 10 system). 4 such textures take 256 MB memory and a 512MB card should be able to handle it.

But I got a "driallocatetexture 636", which means there isn't enough memory, which led me to suspect that the driver is seeing only 256MB memory. Right?

The maximum PCI bar size is 256 MB and is is further limited to the size of the BAR on the device. Thus the largest framebuffer you can map and access from the CPU is the maximum BAR size on your device (256 MB or less). The rest of the vram is accessible by the GPU only. As such it's possible to store things in the non-CPU accessible region, it just get complicated to access if you need to get to the data from the CPU.

Comment

The maximum PCI bar size is 256 MB and is is further limited to the size of the BAR on the device. Thus the largest framebuffer you can map and access from the CPU is the maximum BAR size on your device (256 MB or less). The rest of the vram is accessible by the GPU only. As such it's possible to store things in the non-CPU accessible region, it just get complicated to access if you need to get to the data from the CPU.

It's also for such case that memory manager would be usefull

Comment

The maximum PCI bar size is 256 MB and is is further limited to the size of the BAR on the device. Thus the largest framebuffer you can map and access from the CPU is the maximum BAR size on your device (256 MB or less). The rest of the vram is accessible by the GPU only. As such it's possible to store things in the non-CPU accessible region, it just get complicated to access if you need to get to the data from the CPU.

OK, How do I do it? :-) How can I upload these large textures?
I tried with fglrx and it worked fine, even though I get the same PCI_BAR message

Comment

So, I just got a ATI x1950 512MB card and installed Fedora 10 hoping this would work since KMS works on F10.

Well, It still doesn't seem to see beyond 256MB. I tried my code and I get the same message about dri not able to allocate textures.

So, I assume memory manager is still not in place?

The memory manager is in place, we just aren't using the memory outside the BAR yet. It's a bit tricky since that memory cannot be accessed by the CPU, so if sw needs to access it it has to be migrated somewhere it can be mapped or accessed. Don't worry, we'll get there eventually.