Çok eski bir web tarayıcısı kullanıyorsunuz. Bu veya diğer siteleri görüntülemekte sorunlar yaşayabilirsiniz.. Tarayıcınızı güncellemeli veya alternatif bir tarayıcı kullanmalısınız.
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Grafikli alt yapıda oyunu full pencerede oynayınca ve windows'ta altta alınca tekrar oyuna girince ekran siyahta kalıyor bunun fix'i versiyon 1. 0'da var diyorlar ama bayağı bir kurcalamama rağmen bulamadım bu altyapıyı kullanacaklar için büyük bir sorun, yardımcı olabilecek veya bilgisi olan var mı?
sadece pythonapplication yeterli değil bu yukarıdakini dene olmazsa bu dosyaları gönder ; Grpdevice.cpp pythongraphic.cpp pythonbackground ve benzerleri
sadece pythonapplication yeterli değil bu yukarıdakini dene olmazsa bu dosyaları gönder ; Grpdevice.cpp pythongraphic.cpp pythonbackground ve benzerleri
sadece pythonapplication yeterli değil bu yukarıdakini dene olmazsa bu dosyaları gönder ; Grpdevice.cpp pythongraphic.cpp pythonbackground ve benzerleri
okey alta alma sorunu bitti yani aslında = windows da oyun penceresini küçültüyorsun ve ekran siyah oluyordu bu sorun ortadan kalktı ve şimdi 2. client açtığında donma oluyor doğru mu anladım ?
okey alta alma sorunu bitti yani aslında = windows da oyun penceresini küçültüyorsun ve ekran siyah oluyordu bu sorun ortadan kalktı ve şimdi 2. client açtığında donma oluyor doğru mu anladım ?
tamam şimdi bu dx9 yük meselesi mevzusu bence şunu yap ;
1. clientte grafiği max ultra aç 2. clienti ise küçük ayarlarla aç yani gölgeleri vs kapat ve pencereyi küçült veya büyült bu şekilde deneyip ne olduğunu özetlersen ona göre bir şeyler deneriz
tamam şimdi bu dx9 yük meselesi mevzusu bence şunu yap ;
1. clientte grafiği max ultra aç 2. clienti ise küçük ayarlarla aç yani gölgeleri vs kapat ve pencereyi küçült veya büyült bu şekilde deneyip ne olduğunu özetlersen ona göre bir şeyler deneriz
kral uyudun galiba yarın anydesk atınca bakarız ama sorun tamamen yük ile alakalı bundan eminim artık aşağıya denemelik bıraktım denemek isteyen olursa
dx9 sleep ekledim şimdi ordan biri zıplayıp kodun leşliğine bak demez inş , tekrardan belirteyim DENEMEK - TRY - TEST ETMEK GÖRMEK ETC.
Sorun muhtemelen aynı sebepten. Cihaz reset anında gerekli sistemlerin/kaynakların release-create işlemine tutulmaması sebebiyle bu sorunu yaşıyorsun büyük ihtimalle. Senin dosyalar farklı olduğundan aynı işlemi yapamadım ancak kullanılan sistemlere dikkat et. Render target, post process vb. varsa aynı işlemleri uygulayabilirsin.
Yapay zekanın verdiği kodda mantık hatası var ve pek pratik değil.
Dosyanda fark ettiğim eksikler şunlar
PythonApplication.cpp şu kısmı bul:
C++:
#ifdef ENABLE_FIX_MOBS_LAG
case CGraphicDevice::DEVICESTATE_NEEDS_RESET:
m_pyBackground.ReleaseCharacterShadowTexture();
//CRenderTargetManager::Instance().ReleaseRenderTargetTextures();
Trace("DEVICESTATE_NEEDS_RESET - attempting");
if (!m_grpDevice.Reset())
{
return DEVICE_STATE_SKIP;
}
//CRenderTargetManager::Instance().CreateRenderTargetTextures();
m_pyBackground.CreateCharacterShadowTexture();
break;
#else
case CGraphicDevice::DEVICESTATE_NEEDS_RESET:
if (!m_grpDevice.Reset())
return DEVICE_STATE_SKIP;
break;
#endif
Aşağıdaki gibi düzenle:
C++:
#ifdef ENABLE_FIX_MOBS_LAG
case CGraphicDevice::DEVICESTATE_NEEDS_RESET:
m_pyBackground.ReleaseCharacterShadowTexture();
CRenderTargetManager::Instance().ReleaseRenderTargetTextures(); // aktif olacak
GetPostProcessingChain().ReleaseResources(); // eklendi
Trace("DEVICESTATE_NEEDS_RESET - attempting");
if (!m_grpDevice.Reset())
{
TraceError("PythonApplication:: Device reset failed.."); // log amaçlı, sonra kapatırsın
return DEVICE_STATE_SKIP;
}
if (!GetPostProcessingChain().CreateResources()) // eklendi
TraceError("GetPostProcessingChain: CreateResources - ERROR!!!");
CRenderTargetManager::Instance().CreateRenderTargetTextures(); // aktif olacak
m_pyBackground.CreateCharacterShadowTexture();
break;
#else
case CGraphicDevice::DEVICESTATE_NEEDS_RESET:
if (!m_grpDevice.Reset())
return DEVICE_STATE_SKIP;
break;
#endif
Bu şekilde bir dener misin?
Sorun muhtemelen aynı sebepten. Cihaz reset anında gerekli sistemlerin/kaynakların release-create işlemine tutulmaması sebebiyle bu sorunu yaşıyorsun büyük ihtimalle. Senin dosyalar farklı olduğundan aynı işlemi yapamadım ancak kullanılan sistemlere dikkat et. Render target, post process vb. varsa aynı işlemleri uygulayabilirsin.
Ek olarak; Diretx9Ex sürümüne geçmeyi düşünürseniz bu tür karmaşaların hepsi otomatik olarak çözülmüş olur ve bu Release-Create kısımları otomatik olarak işlevsiz/etkisiz hale gelir çünkü hiçbir zaman çağrılmazlar. Directx9Ex' de cihazın resetlenmesi veya resetlenmeye ihtiyaç duyması için ALT+TAB / oyunu alta almak vb. sebeplerden ziyade;
- Shader hataları
- Ekran kartının yerinden sökülmesi
- Ekran kartı driverının çökmesi vb.
daha ütopik sebepler gerekir.
Directx9 XPDM(Windows XP Driver Model) kullandığı için oyunu alta alma, ALT+TAB vb. şeylerden bile etkilenir.
Directx9Ex ise Windows Vista ile gelen WDDM(Windows Display Driver Model) kullandığından pencere yönetim konusunda daha ileri seviyedir ve bu tür basit kullanıcı senaryolarından etkilenmez.