[haiku-commits] Re: r41586 - in haiku/trunk: headers/private/graphics/radeon_hd src/add-ons/accelerants/radeon_hd src/add-ons/kernel/drivers/graphics/radeon_hd

  • From: "Axel Dörfler" <axeld@xxxxxxxxxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Thu, 19 May 2011 20:54:55 +0200

kallisti5@xxxxxxxxxxx wrote:
> +uint32
> +AllocateFB(uint32 size, const char *description)

First of all, a graphics driver can be used by more than one 
application concurrently. Therefore, you need to lock everything you do 
properly, and your locking functionality need to be shared among all 
possible clones of the accelerant.

Second of all, this is way too poor an implementation for proper memory 
management - and completelt unnecessary as well, as the solutions are 
already out there waiting to be used. You should probably be either 
using Thomas's memory_manager.c (see add-
ons/kernel/drivers/graphics/common), or go all the way and implement an 
AGP GART module (which probably makes most sense only for shared memory 
these days, as it allows you to only occupy the memory that is actually 
needed).
For the former, the existing radeon driver can show you how to use the 
memory manager, for the latter, you could have a look at the Intel 
driver, and the intel_gart.cpp GART module in src/add-
ons/kernel/busses/agp_gart/.
HTH.

Bye,
   Axel.


Other related posts: