mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-09 01:50:12 +01:00
st/nine: Implement EvictManagedResources
EvictManagedResources is used by apps to free the gpu memory of MANAGED textures (which have a cpu memory backing) Signed-off-by: Axel Davy <axel.davy@ens.fr>
This commit is contained in:
parent
4c126f0b58
commit
c57f777b09
3 changed files with 26 additions and 4 deletions
|
|
@ -587,6 +587,21 @@ NineBaseTexture9_PreLoad( struct NineBaseTexture9 *This )
|
|||
NineBaseTexture9_UploadSelf(This);
|
||||
}
|
||||
|
||||
void
|
||||
NineBaseTexture9_UnLoad( struct NineBaseTexture9 *This )
|
||||
{
|
||||
if (This->base.pool != D3DPOOL_MANAGED ||
|
||||
This->managed.lod_resident == -1)
|
||||
return;
|
||||
|
||||
pipe_resource_reference(&This->base.resource, NULL);
|
||||
This->managed.lod_resident = -1;
|
||||
This->managed.dirty = TRUE;
|
||||
|
||||
/* If the texture is bound, we have to re-upload it */
|
||||
BASETEX_REGISTER_UPDATE(This);
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
void
|
||||
NineBaseTexture9_Dump( struct NineBaseTexture9 *This )
|
||||
|
|
|
|||
|
|
@ -95,6 +95,9 @@ NineBaseTexture9_GenerateMipSubLevels( struct NineBaseTexture9 *This );
|
|||
void WINAPI
|
||||
NineBaseTexture9_PreLoad( struct NineBaseTexture9 *This );
|
||||
|
||||
void
|
||||
NineBaseTexture9_UnLoad( struct NineBaseTexture9 *This );
|
||||
|
||||
/* For D3DPOOL_MANAGED only (after SetLOD change): */
|
||||
HRESULT
|
||||
NineBaseTexture9_CreatePipeResource( struct NineBaseTexture9 *This,
|
||||
|
|
|
|||
|
|
@ -548,10 +548,14 @@ NineDevice9_GetAvailableTextureMem( struct NineDevice9 *This )
|
|||
HRESULT WINAPI
|
||||
NineDevice9_EvictManagedResources( struct NineDevice9 *This )
|
||||
{
|
||||
/* We don't really need to do anything here, but might want to free up
|
||||
* the GPU virtual address space by killing pipe_resources.
|
||||
*/
|
||||
STUB(D3D_OK);
|
||||
struct NineBaseTexture9 *tex;
|
||||
|
||||
DBG("This=%p\n", This);
|
||||
LIST_FOR_EACH_ENTRY(tex, &This->managed_textures, list2) {
|
||||
NineBaseTexture9_UnLoad(tex);
|
||||
}
|
||||
|
||||
return D3D_OK;
|
||||
}
|
||||
|
||||
HRESULT WINAPI
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue