2
0
aignacio_sf 20 жил өмнө
parent
commit
a4590db6a6

+ 16 - 20
panda/src/dxgsg9/dxGraphicsStateGuardian9.cxx

@@ -2086,15 +2086,7 @@ reset() {
   }
   _available_texture_memory = available_texture_memory;
 
-/*
-  if (_lru) {
-    delete _lru;
-    _lru = 0;
-  }
-*/
-
-  if (_lru == 0)
-  {
+  if (_lru == 0) {
     if (dx_management == false && _enable_lru) {
       int error;
       int maximum_memory;
@@ -2118,6 +2110,9 @@ reset() {
       if (maximum_memory < minimum_memory_requirement) {
          if (maximum_memory < absolute_minimum_memory_requirement) {
            // video memory size is too small
+
+            dxgsg9_cat.error() << "Available video memory is too low " << _available_texture_memory << "\n";
+
             error = true;
          }
          else {
@@ -2125,10 +2120,7 @@ reset() {
            maximum_memory = available_texture_memory;
 
            // need to warn user about low video memory
-  // *****
-  {
-
-  }
+           dxgsg9_cat.warning() << "Available video memory " << _available_texture_memory << " is below the minimum requirement of " << minimum_memory_requirement << "\n";
         }
       }
       else {
@@ -2137,6 +2129,9 @@ reset() {
             // cap video memory used
             maximum_memory = maximum_memory_requirement;
           }
+        } else {
+          // take all video memory
+
         }
       }
 
@@ -2152,6 +2147,7 @@ reset() {
         maximum_page_types = GPT_TotalPageTypes;
         lru = new Lru (maximum_memory, maximum_pages, maximum_page_types);
         if (lru) {
+          // register page in and out callbacks
           lru -> register_lru_page_type (GPT_VertexBuffer, vertex_buffer_page_in_function, vertex_buffer_page_out_function);
           lru -> register_lru_page_type (GPT_IndexBuffer, index_buffer_page_in_function, index_buffer_page_out_function);
           lru -> register_lru_page_type (GPT_Texture, texture_page_in_function, texture_page_out_function);
@@ -2169,14 +2165,9 @@ reset() {
 
   _supports_render_texture = false;
 
-  hr = _d3d_device->GetCreationParameters (&creation_parameters);
-
   // default render to texture format
-//  _screen->_render_to_texture_d3d_format = D3DFMT_X8R8G8B8;
-
-  // match the display mode format for render to texture
-  _screen->_render_to_texture_d3d_format = _screen->_display_mode.Format;
-
+  _screen->_render_to_texture_d3d_format = D3DFMT_X8R8G8B8;
+  hr = _d3d_device->GetCreationParameters (&creation_parameters);
   if (SUCCEEDED (hr)) {
     hr = _screen->_d3d9->CheckDeviceFormat (
         creation_parameters.AdapterOrdinal,
@@ -2186,6 +2177,8 @@ reset() {
         D3DRTYPE_TEXTURE,
         _screen->_render_to_texture_d3d_format);
     if (SUCCEEDED (hr)) {
+      // match the display mode format for render to texture
+      _screen->_render_to_texture_d3d_format = _screen->_display_mode.Format;
       _supports_render_texture = true;
     }
   }
@@ -2193,6 +2186,9 @@ reset() {
     dxgsg9_cat.debug() << "Render to Texture Support = " << _supports_render_texture << "\n";
   }
 
+  // override default config setting since it is really supported or not ???
+//  support_render_texture = _supports_render_texture;
+
   _supports_3d_texture = ((d3d_caps.TextureCaps & D3DPTEXTURECAPS_VOLUMEMAP) != 0);
   if (_supports_3d_texture) {
     _max_3d_texture_dimension = d3d_caps.MaxVolumeExtent;