Çözüldü Marty 5. 8 jettyx 1. 6 hata

  • Konuyu açan Konuyu açan asilords
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 16
  • Gösterim Gösterim 1K
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ı.

asilords

MT Üye
MT Üye
Mesaj
564
Çözümler
21
Beğeni
168
Puan
749
Ticaret Puanı
0
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ı?
 
Çözüm
29836 eklentisini görüntüle

29837 eklentisini görüntüle

böyle bir değişim yaptı yapay zeka ve sorun düzelti ama ne anlama geldiğini bilmediğim için güvenemedim. @Kaiser uygun görürse böyle kullanacağım.
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++:
Genişlet Daralt Kopyala
#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;
        }...
Aynı şey oyundayken CTRL+ALT+DEL yapınca da oluyor mu? Eğer oluyorsa pythonapplication.cpp ve locale_inc.h vb. yüklersen göz atabilirim
 
Aynı şey oyundayken CTRL+ALT+DEL yapınca da oluyor mu? Eğer oluyorsa pythonapplication.cpp ve locale_inc.h vb. yüklersen göz atabilirim
Evet dediğiniz şekilde oluyor arkadaşın sorununu ben daha önce forumda açmıştım şöyle ileteyim;
 

Dosya Eklentileri

kaldır
pythonapplication:
Genişlet Daralt Kopyala
            if (m_pyGraphic.IsLostDevice())

aynı yere ekle
pythonapplication:
Genişlet Daralt Kopyala
            if (DEVICE_STATE_OK != CheckDeviceState())
            {
                CPythonBackground& rkBG = CPythonBackground::Instance();
                rkBG.ReleaseCharacterShadowTexture();
                if (m_pyGraphic.RestoreDevice())
                    rkBG.CreateCharacterShadowTexture();
                else
                    canRender = false;
            }
            else if (m_pyGraphic.IsLostDevice())


bunu bul
pythonapplication:
Genişlet Daralt Kopyala
    case CGraphicDevice::DEVICESTATE_NEEDS_RESET:


altına ekle ;

pythonapplication:
Genişlet Daralt Kopyala
        m_pyBackground.ReleaseCharacterShadowTexture();


bunu bul
pythonapplication:
Genişlet Daralt Kopyala
            return DEVICE_STATE_SKIP;

altına ekle ;
pythonapplication:
Genişlet Daralt Kopyala
        m_pyBackground.CreateCharacterShadowTexture();
        break;

    default:


sadece pythonapplication yeterli değil bu yukarıdakini dene olmazsa bu dosyaları gönder ; Grpdevice.cpp pythongraphic.cpp pythonbackground ve benzerleri
 
kaldır
pythonapplication:
Genişlet Daralt Kopyala
            if (m_pyGraphic.IsLostDevice())

aynı yere ekle
pythonapplication:
Genişlet Daralt Kopyala
            if (DEVICE_STATE_OK != CheckDeviceState())
            {
                CPythonBackground& rkBG = CPythonBackground::Instance();
                rkBG.ReleaseCharacterShadowTexture();
                if (m_pyGraphic.RestoreDevice())
                    rkBG.CreateCharacterShadowTexture();
                else
                    canRender = false;
            }
            else if (m_pyGraphic.IsLostDevice())


bunu bul
pythonapplication:
Genişlet Daralt Kopyala
    case CGraphicDevice::DEVICESTATE_NEEDS_RESET:


altına ekle ;

pythonapplication:
Genişlet Daralt Kopyala
        m_pyBackground.ReleaseCharacterShadowTexture();


bunu bul
pythonapplication:
Genişlet Daralt Kopyala
            return DEVICE_STATE_SKIP;

altına ekle ;
pythonapplication:
Genişlet Daralt Kopyala
        m_pyBackground.CreateCharacterShadowTexture();
        break;

    default:


sadece pythonapplication yeterli değil bu yukarıdakini dene olmazsa bu dosyaları gönder ; Grpdevice.cpp pythongraphic.cpp pythonbackground ve benzerleri
Teşekkürler deneyeceğim bir göz gezdirin isterseniz;
 

Dosya Eklentileri

kaldır
pythonapplication:
Genişlet Daralt Kopyala
            if (m_pyGraphic.IsLostDevice())

aynı yere ekle
pythonapplication:
Genişlet Daralt Kopyala
            if (DEVICE_STATE_OK != CheckDeviceState())
            {
                CPythonBackground& rkBG = CPythonBackground::Instance();
                rkBG.ReleaseCharacterShadowTexture();
                if (m_pyGraphic.RestoreDevice())
                    rkBG.CreateCharacterShadowTexture();
                else
                    canRender = false;
            }
            else if (m_pyGraphic.IsLostDevice())


bunu bul
pythonapplication:
Genişlet Daralt Kopyala
    case CGraphicDevice::DEVICESTATE_NEEDS_RESET:


altına ekle ;

pythonapplication:
Genişlet Daralt Kopyala
        m_pyBackground.ReleaseCharacterShadowTexture();


bunu bul
pythonapplication:
Genişlet Daralt Kopyala
            return DEVICE_STATE_SKIP;

altına ekle ;
pythonapplication:
Genişlet Daralt Kopyala
        m_pyBackground.CreateCharacterShadowTexture();
        break;

    default:


sadece pythonapplication yeterli değil bu yukarıdakini dene olmazsa bu dosyaları gönder ; Grpdevice.cpp pythongraphic.cpp pythonbackground ve benzerleri
Oyunu alta alırken sorunun çözümü budur çözüyor ayrıca oyun açıkken diğer client açarken ana client donuyor çözümü vardır diye düşünüyorum @hexe
 
Oyunu alta alırken sorunun çözümü budur çözüyor ayrıca oyun açıkken diğer client açarken ana client donuyor çözümü vardır diye düşünüyorum @hexe

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 ?
 
Evet tam olarak öyle.

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
Dediğin şekilde yaptım ancak tekrar ekran donuyor ayrıca 2 clientide düşük ayarlarda açtım grafikleri kapalı şekilde ama tekrar donma sorunu mevcut.
 
bu client yük sorunuyla alakalı da buna derince bakmak lazım özelden anydesk ilet bakalım

#if defined(ANK_SYSTEM_GRAPHICS)
RenderSpecial();
#endif
SkipRenderBuffering(1000);

buraylada alakalı gibi bence çünkü bunlar jetty kodları değil bu kendine göre bir şeyler yapmış
 
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.
 

Dosya Eklentileri

Ekran görüntüsü 2026-03-23 142039.webp


Ekran görüntüsü 2026-03-23 142652.webp


böyle bir değişim yaptı yapay zeka ve sorun düzelti ama ne anlama geldiğini bilmediğim için güvenemedim. @Kaiser uygun görürse böyle kullanacağım.
 
29836 eklentisini görüntüle

29837 eklentisini görüntüle

böyle bir değişim yaptı yapay zeka ve sorun düzelti ama ne anlama geldiğini bilmediğim için güvenemedim. @Kaiser uygun görürse böyle kullanacağım.
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++:
Genişlet Daralt Kopyala
#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++:
Genişlet Daralt Kopyala
#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?

Evet dediğiniz şekilde oluyor arkadaşın sorununu ben daha önce forumda açmıştım şöyle ileteyim;
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.
 
Çözüm
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++:
Genişlet Daralt Kopyala
#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++:
Genişlet Daralt Kopyala
#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.
Sorun düzeldi, bu işin piri @Kaiser Ayırdığınız zaman ve yardım için teşekkürler.
 
Sorun düzelti, bu işin piri @Kaiser Ayırdığınız zaman ve yardım için teşekkürler.

Çözülmesine sevindim.

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.
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst