mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 10:54:24 -04:00
Add more options and debug options for DX9 LRU.
This commit is contained in:
parent
49ccbd9c97
commit
5ae5135044
@ -160,6 +160,19 @@ ConfigVariableInt dx_lru_minimum_memory_requirement
|
|||||||
ConfigVariableInt dx_lru_maximum_memory_requirement
|
ConfigVariableInt dx_lru_maximum_memory_requirement
|
||||||
("dx-lru-maximum-memory-requirement", 128000000);
|
("dx-lru-maximum-memory-requirement", 128000000);
|
||||||
|
|
||||||
|
// this is the number of LRU pages the LRU will update per frame
|
||||||
|
// do not set this too high or it will degrade performance
|
||||||
|
ConfigVariableInt dx_lru_maximum_page_updates_per_frame
|
||||||
|
("dx-lru-maximum-page-updates-per-frame", 10);
|
||||||
|
|
||||||
|
// lru debug on/off
|
||||||
|
ConfigVariableBool dx_lru_debug
|
||||||
|
("dx-lru-debug", false);
|
||||||
|
|
||||||
|
// if dx_lru_debug == true && if notify-level-dxgsg9 == debug
|
||||||
|
// number of frames to wait until printing out the LRU status
|
||||||
|
ConfigVariableInt dx_lru_debug_frames_til_output
|
||||||
|
("dx-lru-debug-frames-til-output", 500);
|
||||||
|
|
||||||
ConfigureFn(config_dxgsg9) {
|
ConfigureFn(config_dxgsg9) {
|
||||||
init_libdxgsg9();
|
init_libdxgsg9();
|
||||||
|
@ -67,6 +67,11 @@ extern ConfigVariableInt dx_lru_maximum_pages;
|
|||||||
extern ConfigVariableInt dx_lru_free_memory_requirement;
|
extern ConfigVariableInt dx_lru_free_memory_requirement;
|
||||||
extern ConfigVariableInt dx_lru_minimum_memory_requirement;
|
extern ConfigVariableInt dx_lru_minimum_memory_requirement;
|
||||||
extern ConfigVariableInt dx_lru_maximum_memory_requirement;
|
extern ConfigVariableInt dx_lru_maximum_memory_requirement;
|
||||||
|
extern ConfigVariableInt dx_lru_maximum_page_updates_per_frame;
|
||||||
|
|
||||||
|
// LRU debug variables
|
||||||
|
extern ConfigVariableBool dx_lru_debug;
|
||||||
|
extern ConfigVariableInt dx_lru_debug_frames_til_output;
|
||||||
|
|
||||||
extern EXPCL_PANDADX void init_libdxgsg9();
|
extern EXPCL_PANDADX void init_libdxgsg9();
|
||||||
|
|
||||||
|
@ -812,20 +812,19 @@ end_frame() {
|
|||||||
int frames;
|
int frames;
|
||||||
int maximum_updates;
|
int maximum_updates;
|
||||||
|
|
||||||
// LRU *****
|
// LRU update
|
||||||
maximum_updates = 10;
|
maximum_updates = dx_lru_maximum_page_updates_per_frame;
|
||||||
_lru -> partial_lru_update (maximum_updates);
|
_lru -> partial_lru_update (maximum_updates);
|
||||||
// _lru -> update_entire_lru ( );
|
|
||||||
|
|
||||||
|
|
||||||
|
// LRU debug
|
||||||
if (false && dxgsg9_cat.is_debug())
|
if (false && dxgsg9_cat.is_debug())
|
||||||
{
|
{
|
||||||
dxgsg9_cat.debug() << "* start_priority_index " << _lru -> _m.start_priority_index << "\n";
|
dxgsg9_cat.debug() << "* start_priority_index " << _lru -> _m.start_priority_index << "\n";
|
||||||
dxgsg9_cat.debug() << "* start_update_lru_page " << _lru -> _m.start_update_lru_page << "\n";
|
dxgsg9_cat.debug() << "* start_update_lru_page " << _lru -> _m.start_update_lru_page << "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
frames = 256;
|
frames = dx_lru_debug_frames_til_output;
|
||||||
if ((_lru -> _m.current_frame_identifier % frames) == 0)
|
if (dx_lru_debug && frames > 0 && (_lru -> _m.current_frame_identifier % frames) == 0)
|
||||||
{
|
{
|
||||||
if (dxgsg9_cat.is_debug())
|
if (dxgsg9_cat.is_debug())
|
||||||
{
|
{
|
||||||
@ -833,9 +832,8 @@ end_frame() {
|
|||||||
|
|
||||||
available_texture_memory = _d3d_device->GetAvailableTextureMem ( );
|
available_texture_memory = _d3d_device->GetAvailableTextureMem ( );
|
||||||
|
|
||||||
dxgsg9_cat.debug() << "* LRU: total_pages " << _lru -> _m.total_pages << "/" << _lru -> _m.maximum_pages << "\n";
|
dxgsg9_cat.debug() << "* LRU: total_pages " << _lru -> _m.total_pages << "/" << _lru -> _m.maximum_pages << " upf " << dx_lru_maximum_page_updates_per_frame << " fto " << dx_lru_debug_frames_til_output << "\n";
|
||||||
dxgsg9_cat.debug() << "* DX available_texture_memory = " << available_texture_memory << "\n";
|
dxgsg9_cat.debug() << "* DX available_texture_memory = " << available_texture_memory << "\n";
|
||||||
// dxgsg9_cat.debug() << "* DX delta_memory " << available_texture_memory - _lru -> _m.available_memory << "\n";
|
|
||||||
dxgsg9_cat.debug() << "* delta_memory " << _available_texture_memory - (available_texture_memory + (_lru -> _m.maximum_memory - _lru -> _m.available_memory)) << "\n";
|
dxgsg9_cat.debug() << "* delta_memory " << _available_texture_memory - (available_texture_memory + (_lru -> _m.maximum_memory - _lru -> _m.available_memory)) << "\n";
|
||||||
dxgsg9_cat.debug() << "* available_memory " << _lru -> _m.available_memory << "/" << _lru -> _m.maximum_memory << "\n";
|
dxgsg9_cat.debug() << "* available_memory " << _lru -> _m.available_memory << "/" << _lru -> _m.maximum_memory << "\n";
|
||||||
dxgsg9_cat.debug() << "* total lifetime pages created " << _lru -> _m.identifier << "\n";
|
dxgsg9_cat.debug() << "* total lifetime pages created " << _lru -> _m.identifier << "\n";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user