ZFX
ZFX Neu
Home
Community
Neueste Posts
Chat
FAQ
IOTW
Tutorials
Bücher
zfxCON
ZFXCE
Mathlib
ASSIMP
NES
Wir über uns
Impressum
Regeln
Suchen
Mitgliederliste
Membername:
Passwort:
Besucher:
4442160
Jetzt (Chat):
14 (0)
Mitglieder:
5239
Themen:
24223
Nachrichten:
234554
Neuestes Mitglied:
-insane-

ZFX
Coding-Foren
DirectX API
Re: Enumeration Direktx 9 -> 10
NormalSeite: < 1 2
AutorThema
exploid Bin Kaffee holen
ZFX'ler


Registriert seit:
21.08.2005

Deutschland
Re: Enumeration Direktx 9 -> 10Nach oben.
hab die excuteable vergessen moment
13.02.2009, 20:14:56 Uhr
exploid Bin Kaffee holen
ZFX'ler


Registriert seit:
21.08.2005

Deutschland
Re: Enumeration Direktx 9 -> 10Nach oben.
link

mit ausführbarer Datei
13.02.2009, 20:16:55 Uhr
exploid Bin Kaffee holen
ZFX'ler


Registriert seit:
21.08.2005

Deutschland
Re: Enumeration Direktx 9 -> 10Nach oben.
Also noch ein paar Worte zur funktionsweise. Der Dialog guckt über Das DX_GI Interface nach vorhandenen Grafikarten und listet die in der Combobox.
Dann sucht er die Ausgabegeräte die an der Grafikkarteangschlossen und listet sie auf.
Dann schaut er ob das Ausgabegerät DirektX 10 fähig ist.
Weiter guckt er nach möglichen Devices also hardware, reference & software und listet sie sofern möglich.
Dann schaut er nach welche Formate möglich sind und listet die möglichen.
Weiter sollte er dann alle Auflösungen auflisten die für die Formate möglich sind und bei Auswahl eines anderen Formats akutalisieren.

Soweit die Planung
Bei mir funktioniers auf vista home 32 bit Geforce 280 gtx

wenn jemand an dem quellcode interessiert ist dann bitte sagen dann mach ich nen upload link

3 Mal gendert, zuletzt am 13.02.2009, 20:42:28 Uhr von exploid.
13.02.2009, 20:32:19 Uhr
Krishty Offline
ZFX'ler


Registriert seit:
01.02.2004

Nordrhein-Westfalen
342173470
Re: Enumeration Direktx 9 -> 10Nach oben.
Code:
[D3D::D3D]: online (waiting for initialization call)
[D3D::Init]: calling dialog
[D3DEnum::Enum]: online (waiting for enumeration to start)
[D3DEnum::EnumAdapters]: Adapter enumeration started
[D3DEnum::EnumAdapters]: Adapter enumeration finished
[D3DEnum::EnumerateOutputs]: Output enumeration started
[D3DEnum::EnumerateOutputs]: Output enumeration successfull before reaching MAXOUTPUTS
[D3DEnum::EnumDevices]: Device enumeration started
[D3DEnum::EnumDevices]: Device enumeration finished
[D3DEnum::EnumDisplayModes]: Display mode enumeration started
[D3DEnum::EnumDisplayModes]: attempting to allocate memory for pDesc
[D3DEnum::EnumDisplayModes]: memory allocation successfull
[D3DEnum::EnumDisplayModes]: attempting to allocate memory for pDesc
[D3DEnum::EnumDisplayModes]: memory allocation successfull
[D3DEnum::EnumDisplayModes]: attempting to allocate memory for pDesc
[D3DEnum::EnumDisplayModes]: memory allocation successfull
[D3DEnum::EnumDisplayModes]: attempting to allocate memory for pDesc
[D3DEnum::EnumDisplayModes]: memory allocation successfull
[D3DEnum::EnumDisplayModes]: Display mode enumeration finished
[D3DEnum::ChangedAdapterFormat]: started
[D3DEnum::ChangedAdapterFormat]: found display mode > 60 hertz
[D3DEnum::ChangedAdapterFormat]: found display mode > 60 hertz
[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE
[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE
[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE
[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE
[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE
[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE
[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE
[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE
[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE
[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE
[D3DEnum::ChangedAdapterFormat]: found display mode > 60 hertz
[D3DEnum::ChangedAdapterFormat]: found display mode > 60 hertz
[D3DEnum::ChangedAdapterFormat]: found display mode > 60 hertz
[D3DEnum::ChangedAdapterFormat]: found display mode > 60 hertz
[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE
[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE
[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE
[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE
[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE
[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE
[D3DEnum::ChangedAdapterFormat]: found display mode > 60 hertz
[D3DEnum::ChangedAdapterFormat]: found display mode > 60 hertz
[D3DEnum::ChangedAdapterFormat]: found display mode > 60 hertz
[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE
[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE
[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE
[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE
[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE
[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE
[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE
[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE
[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE
[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE
[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE
[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE
[D3DEnum::ChangedAdapterFormat]: found display mode > 60 hertz
[D3DEnum::ChangedAdapterFormat]: finished
[D3D::Init]: dialog finished
[D3D::Init]: warning: selection dialog canceled by user
[D3DEnum::D3DEnum]: offline
[D3D::Release]: offline (ok)
Der Monitor ist definitiv auf 60 Hz eingestellt, der Treiber meldet aber, dass er bis zu 75 Hz unterstützt … möglicherweise hat das ja was damit zu tun.

Achja – du hast doch den letzten Post so schön editiert … ist es da denn wirklich nötig, dauernd zwei bis vier Posts innerhalb kürzester Zeit zu erstellen statt den ersten zu editieren?
14.02.2009, 15:34:47 Uhr
exploid Bin Kaffee holen
ZFX'ler


Registriert seit:
21.08.2005

Deutschland
Re: Enumeration Direktx 9 -> 10Nach oben.
Hallo

Danke für deine Hilfe Krishty die Bugs zu finden.

Code:
/**
 * Call when adapter format selection changed. 
 */
void D3DEnum::ChangedAdapterFormat(void) {
    D3DDisplayModeList *pDisplay=NULL;
    WCHAR wcBuffer[128]={};
    char cBuffer[128]={};
    
    Log(\"[D3DEnum::ChangedAdapterFormat]: started\n\");

    SendMessage(m_hMODE, CB_RESETCONTENT, 0, 0);

    // get selected item
    pDisplay = (D3DDisplayModeList *)GetSelectedItem(m_hADAPTERFMT);
    for (UINT d=0; dnModes; d++) {
        // only interested in unspecified modes at this point
        if(pDisplay->pDesc[d].Scaling != DXGI_MODE_SCALING_UNSPECIFIED) {
            Log(\"[D3DEnum::ChangedAdapterFormat]: found unspecified DXGI_MODE\n\");
            continue;
        }
        // only interested in 60 hz types
        if(pDisplay->pDesc[d].RefreshRate.Numerator > 61000) {
            Log(\"[D3DEnum::ChangedAdapterFormat]: found display mode > 60 hertz\n\");
            continue;
        }

        Log(\"[D3DEnum::ChangedAdapterFormat]: following text buffer is send to combobox 'Available Modes': Textbuffer='\");
        swprintf(wcBuffer, L\"%d x %d\", pDisplay->pDesc[d].Width, pDisplay->pDesc[d].Height);
        wtoc(cBuffer, wcBuffer);
        Log(cBuffer);
        Log(\"'\n\");
        AddItem(m_hMODE, wcBuffer, &d);
    }
    SendMessage(m_hMODE, CB_SETCURSEL, (WPARAM)0, 0); // Select first entry

    Log(\"[D3DEnum::ChangedAdapterFormat]: finished\n\");
} // ChangedDevice
/*----------------------------------------------------------------*/


Das ist meine Funktion um die mögliche Auflösungen dem Combolistenfeld zuzufügen.

Soweit ich das Logfile interpretiere findet er keinen einzigen Mode bei dem der Scaling Modus
unspecified ist oder <= 60 Hertz ist.
Das Logfile zeigt das er 28 Modes gefunden hat die DXGI_MODE_SCALING_CENTERED oder
DXGI_MODE_SCALING_STRETCHED sind aber nicht eins das DXGI_MODE_SCALING_UNSPECIFIED
ist und er hat 10 gefunden die grösser als 60 hertz dargestellt werden.

Dem Listenfeld wird daher nichts hinzugefügt weil die beiden if => continue alle gefundenen abschmettern.
Code:
DXGI_MODE_SCALING_UNSPECIFIED 
Sunspecified scaling. 
DXGI_MODE_SCALING_CENTERED 
Specifies no scaling. The image is centered on the display. This flag is typically used for a fixed-dot-pitch display (such as an LED display). 
DXGI_MODE_SCALING_STRETCHED 
Specifies stretched scaling.


Das schreibt die DirektX 10 SDK Hilfe über die DXGI_MODE_SCALING enum. Der Fehler steht da auch so drin.


4 Mal gendert, zuletzt am 14.02.2009, 16:41:31 Uhr von exploid.
14.02.2009, 16:26:15 Uhr
Krishty Offline
ZFX'ler


Registriert seit:
01.02.2004

Nordrhein-Westfalen
342173470
Re: Enumeration Direktx 9 -> 10Nach oben.
So wird es sein … warum suchst du denn nach Modi mit unbekanntem Scaling? DXGI_MODE_SCALING_UNSPECIFIED ist doch afaik nur da um zu sagen „das Scaling ist mir egal“ wenn du selbst einen Modus suchst … wenn du welche von der Hardware vorgeschrieben bekommst, ist das Scaling selbstverständlich definiert. Oder irre ich mich da?
14.02.2009, 16:41:23 Uhr
exploid Bin Kaffee holen
ZFX'ler


Registriert seit:
21.08.2005

Deutschland
Re: Enumeration Direktx 9 -> 10Nach oben.
Also am Liebsten sollte alles angzeigt werden was
möglich ist. Dafür werde ich noch 2 weitere
Comboboxen einbauen und eine Checkbox für 60, 75
Hertz.

Die beiden Comboboxen werden sein für das
DXGI_MODE_SCALING und für DXGI_ENUM_MODES.
Weiterhin muss ich für den Fall das kein Mode gefunden wird etwas in die Combobox eintragen
werden wie "No mode found" oder so etwas damit
das nicht leer ist.

Damit es den Anwender nicht erschlägt mit Infos
werde ich das nur bei Wunsch anzeigen und sonst hinter einer Erweiterten Funktion stellen und so
einstellen, daß der gängigste Modus, am besten zur
Laufzeit von der Desktop Einstellung abgeguckt, eingestellt wird

1 Mal gendert, zuletzt am 14.02.2009, 17:12:11 Uhr von exploid.
14.02.2009, 17:06:08 Uhr
Krishty Offline
ZFX'ler


Registriert seit:
01.02.2004

Nordrhein-Westfalen
342173470
Re: Enumeration Direktx 9 -> 10Nach oben.
Es kann auch sein, dass das speziell bei mir auftritt, weil ich im Treiber eingestellt habe, dass nicht-native Auflösungen nicht skaliert werden sollen (habe lieber ein kleines, scharfes Bild als ein großes interpoliertes). Eine bestimmte Art von Skalierung auszuschließen ergibt aber auch nicht unbedingt Sinn …
14.02.2009, 17:11:24 Uhr
exploid Bin Kaffee holen
ZFX'ler


Registriert seit:
21.08.2005

Deutschland
Re: Enumeration Direktx 9 -> 10Nach oben.
hm ja stimmt

Mein Dialog soll das aber erkennen können. Daher
ist da noch viel zu tun. Schön wär es auch wenn
Multimonitore Unterstützung finden. Dann wäre auch
Games möglich die über mehrere Monitore ausgegeben
werden.


3 Mal gendert, zuletzt am 15.02.2009, 00:06:35 Uhr von exploid.
14.02.2009, 17:33:27 Uhr
exploid Bin Kaffee holen
ZFX'ler


Registriert seit:
21.08.2005

Deutschland
Re: Enumeration Direktx 9 -> 10Nach oben.
Hallo

Hab jetzt 2 weitere Combofelder eingebaut und eine Einstellung für die Bildfrequenz.
Eine Combobox für den Skalierungsmode(DXGI_MODE_UNSPECIFIED, ..._STRETCHED und ..._CENTERED)
und eine Combobox für den Enumerationsmode (DXGI_ENUM_MODE_INTERLACED, DXGI_ENUM_MODE_SCALING).
Letztere ist aber noch nicht aktiv. Die Bildfrequenzauswahl ist noch auch noch nicht aktiv.
Den Skalierungsmode kann man nun aber auswählen.

Krishty kannst du noch mal schauen ob bei dir jetzt bei Auswahl eines anderen Skalierungsmodus Auflösungen gefunden werden?

Dialog files upload
16.02.2009, 17:17:02 Uhr
Krishty Offline
ZFX'ler


Registriert seit:
01.02.2004

Nordrhein-Westfalen
342173470
Re: Enumeration Direktx 9 -> 10Nach oben.
Nein, immernoch alles leer, unabhängig davon ob ich 60 oder 75 Hertz, Fullscreen oder Windowed, Stretched, Centered oder unspecified auswähle.
Code:
[D3D::D3D]: online (waiting for initialization call)
[D3D::Init]: calling dialog
[D3DEnum::Enum]: online (waiting for enumeration to start)
[D3DEnum::EnumAdapters]: Adapter enumeration started
[D3DEnum::EnumAdapters]: Adapter enumeration finished
[D3DEnum::EnumerateOutputs]: Output enumeration started
[D3DEnum::EnumerateOutputs]: Output enumeration successfull before reaching MAXOUTPUTS
[D3DEnum::EnumDevices]: Device enumeration started
[D3DEnum::EnumDevices]: Device enumeration finished
[D3DEnum::EnumDisplayModes]: Display mode enumeration started
[D3DEnum::EnumDisplayModes]: attempting to allocate memory for pDesc
[D3DEnum::EnumDisplayModes]: memory allocation successfull
[D3DEnum::EnumDisplayModes]: attempting to allocate memory for pDesc
[D3DEnum::EnumDisplayModes]: memory allocation successfull
[D3DEnum::EnumDisplayModes]: attempting to allocate memory for pDesc
[D3DEnum::EnumDisplayModes]: memory allocation successfull
[D3DEnum::EnumDisplayModes]: attempting to allocate memory for pDesc
[D3DEnum::EnumDisplayModes]: memory allocation successfull
[D3DEnum::EnumDisplayModes]: Display mode enumeration finished
[D3DEnum::ChangedAdapterFormat]: started
[D3DEnum::ChangedAdapterFormat]: found display mode > 60 hertz
[D3DEnum::ChangedAdapterFormat]: found display mode > 60 hertz
[D3DEnum::ChangedAdapterFormat]: found display mode > 60 hertz
[D3DEnum::ChangedAdapterFormat]: found display mode > 60 hertz
[D3DEnum::ChangedAdapterFormat]: found display mode > 60 hertz
[D3DEnum::ChangedAdapterFormat]: found display mode > 60 hertz
[D3DEnum::ChangedAdapterFormat]: found display mode > 60 hertz
[D3DEnum::ChangedAdapterFormat]: found display mode > 60 hertz
[D3DEnum::ChangedAdapterFormat]: found display mode > 60 hertz
[D3DEnum::ChangedAdapterFormat]: found display mode > 60 hertz
[D3DEnum::ChangedAdapterFormat]: finished
[D3D::Init]: dialog finished
[D3DEnum::D3DEnum]: offline
[D3D::Release]: offline (ok)
Wie wäre es, wenn du einfach mal alle Modi und alle ihre Eigenschaften loggst? Ich meine, momentan debuggen wir da eher ins Blaue :/
16.02.2009, 17:26:46 Uhr
exploid Bin Kaffee holen
ZFX'ler


Registriert seit:
21.08.2005

Deutschland
Re: Enumeration Direktx 9 -> 10Nach oben.
also wenn du die skalierung umgeschaltet hättest müssten da aber 2x

[D3DEnum::ChangedAdapterFormat]: started

stehen.

ok dann werden alle deskdaten gelogged die gefunden werden

3 Mal gendert, zuletzt am 16.02.2009, 17:44:02 Uhr von exploid.
16.02.2009, 17:32:05 Uhr
Krishty Offline
ZFX'ler


Registriert seit:
01.02.2004

Nordrhein-Westfalen
342173470
Re: Enumeration Direktx 9 -> 10Nach oben.
Ich bin ja alle möglichen Kombinationen durchgegangen, aber da stand dann gut zwanzig Mal dasselbe … hier nochmal komplett: http://krishty.pastebin.com/d57a2b38f
16.02.2009, 17:43:29 Uhr
exploid Bin Kaffee holen
ZFX'ler


Registriert seit:
21.08.2005

Deutschland
Re: Enumeration Direktx 9 -> 10Nach oben.
Hallo

So da bin ich wieder .
Hab jetzt alles eingebaut. Bitte starten und zeigen was er loggt.

dialog
16.02.2009, 18:44:35 Uhr
Krishty Offline
ZFX'ler


Registriert seit:
01.02.2004

Nordrhein-Westfalen
342173470
Re: Enumeration Direktx 9 -> 10Nach oben.
lol

Ein Tipp: Die Refresh-Rate ist nicht als Bruch aufgebaut, damit man nur den Zähler prüft:

RefreshRate.Denominator = 1799408
RefreshRate.Numerator = 108000000

RefreshRate.Denominator = 1049600
RefreshRate.Numerator = 78750000

RefreshRate.Denominator = 692640
RefreshRate.Numerator = 50000000

RefreshRate.Denominator = 660000
RefreshRate.Numerator = 49500000





Und hier nochmal die komplette Log: http://krishty.pastebin.com/d45ef16c9

1 Mal gendert, zuletzt am 16.02.2009, 18:50:42 Uhr von Krishty.
16.02.2009, 18:48:19 Uhr
exploid Bin Kaffee holen
ZFX'ler


Registriert seit:
21.08.2005

Deutschland
Re: Enumeration Direktx 9 -> 10Nach oben.
Hey danke da wird dann schnell klar woran es liegt. Die Frequenz muss ich aussrechnen und dann verwenden und nicht nur auf den Zähler testen haha

1 Mal gendert, zuletzt am 16.02.2009, 19:17:43 Uhr von exploid.
16.02.2009, 18:56:11 Uhr
Krishty Offline
ZFX'ler


Registriert seit:
01.02.2004

Nordrhein-Westfalen
342173470
Re: Enumeration Direktx 9 -> 10Nach oben.
Ganz ehrlich: Das hätte mir aber auch früher auffallen müssen. Ich erinnere mich, dass ich beim Lesen deines Codes letzte Woche kurz über der Stelle mit der Refresh-Rate hängen geblieben bin, sie aber dann nach dem Motto „kenne die Datenstruktur nicht, er wird wissen, was er tut“ übergangen habe … :/

Mich würde aber mal interessieren, wie genau die Zahlen dort zustande kommen … sind ja doch recht exotisch …

Nicht das Delta vergessen, denn da kommen nicht immer genau 60 und 75 Hz raus …

1 Mal gendert, zuletzt am 16.02.2009, 19:00:12 Uhr von Krishty.
16.02.2009, 18:59:22 Uhr
exploid Bin Kaffee holen
ZFX'ler


Registriert seit:
21.08.2005

Deutschland
Re: Enumeration Direktx 9 -> 10Nach oben.
Hab den Fehler korrigiert mit:
Code:
// only interested in 60 hz types
        if( (pDisplay->pDesc[d].RefreshRate.Numerator/pDisplay->pDesc[d].RefreshRate.Denominator)  > 61)

Kannst du schnell testen ob er jetzt Auflösungen findet?

Dialog Projekt


1 Mal gendert, zuletzt am 16.02.2009, 19:29:13 Uhr von exploid.
16.02.2009, 19:26:49 Uhr
Krishty Offline
ZFX'ler


Registriert seit:
01.02.2004

Nordrhein-Westfalen
342173470
Re: Enumeration Direktx 9 -> 10Nach oben.
Perfekt
Nur ein bisschen verwirrend, dass Auflösungen unter den verschiedenen Stretch-Modi aufgelistet werden … wäre es nicht übersichtlicher, die Auflösungen direkt mit den Modi zu listen?

800×600
800×600 (stretched)
800×600 (centered)
1024×768 (centered)
1024×768 (stretched)
1280×1024

etc.
16.02.2009, 19:54:26 Uhr
exploid Bin Kaffee holen
ZFX'ler


Registriert seit:
21.08.2005

Deutschland
Re: Enumeration Direktx 9 -> 10Nach oben.
ja stimmt verwirrend ist das aber wenn der Dialog fertig ist dann steigt man da eh nur durch wenn man das dxgi interface versteht. Der normale Spieleanwender wird da überfordert sein daher ist das nur als Problemlösungstool geplant und die Einstellungen werden beim Start vom Desktop abgeguckt aber soweit bin ich noch nicht. Der Quellcode ist schon 50 mb gross. Unerklärlich bei so wenig funktionalität.

1 Mal gendert, zuletzt am 16.02.2009, 20:13:46 Uhr von exploid.
16.02.2009, 20:01:51 Uhr
Aramis Offline
ZFX'ler


Registriert seit:
14.03.2007

Baden-Württemberg
406712329
Re: Enumeration Direktx 9 -> 10Nach oben.
Zitat:

Der Quellcode ist schon 50 mb gross. Unerklärlich bei so wenig funktionalität.

Jupp, irgendwie ein bisschen unerklärlich viel 'm' in 'kb'
16.02.2009, 20:59:20 Uhr
Krishty Offline
ZFX'ler


Registriert seit:
01.02.2004

Nordrhein-Westfalen
342173470
Re: Enumeration Direktx 9 -> 10Nach oben.
Naja, ich habe allein schon 370 KiB für ein vernünftiges Typsystem …

1 Mal gendert, zuletzt am 16.02.2009, 21:13:29 Uhr von Krishty.
16.02.2009, 21:12:49 Uhr
NormalSeite: < 1 2


ZFX Community Software, Version 0.9.1
Copyright 2002-2003 by Steffen Engel