Purebasic et Windows 7
- Crystal Noir
- Messages : 892
- Inscription : mar. 27/janv./2004 10:07
Re: Purebasic et Windows 7
Bonjour,
J'ai déjà essayé et cela marche avec Dx 7 mais bon, mon but est d'utiliser Dx 9 maintenant.
Peut on espérer une correction prochaine ?
Merci d'avance
J'ai déjà essayé et cela marche avec Dx 7 mais bon, mon but est d'utiliser Dx 9 maintenant.
Peut on espérer une correction prochaine ?
Merci d'avance
Re: Purebasic et Windows 7
Il a essayé avec DirectX 7 et même problème...
Je n'ai pas ce bug sur mon PC fixe avec xp pro sp3 (dual screen ou non), en revanche je l'ai aussi avec mon portable en dual screen (dx9)
Y a bien un truc qui coince
Je n'ai pas ce bug sur mon PC fixe avec xp pro sp3 (dual screen ou non), en revanche je l'ai aussi avec mon portable en dual screen (dx9)
Y a bien un truc qui coince

Re: Purebasic et Windows 7
cederavic> Tu pourrais essayer la version debug de DirectX?
Re: Purebasic et Windows 7
J'essaierai ça ce soir et posterais le rapport ici
Re: Purebasic et Windows 7
Tom's hardware a sorti des articles très intéressants sur Windows 7, GDI et Direct2D. Je vous invite à les lire : http://www.presence-pc.com/tests/2d-win ... i-23257/8/ et http://www.presence-pc.com/tests/2d-windows-23260/2/
- Crystal Noir
- Messages : 892
- Inscription : mar. 27/janv./2004 10:07
Re: Purebasic et Windows 7
Je corrige juste, ca marche avec directx 7, mais comme je le disais, le but est d'utiliser le directx 9 maintenant. J'espère à une prochaine correction dans la version prochainecederavic a écrit :Il a essayé avec DirectX 7 et même problème...
Je n'ai pas ce bug sur mon PC fixe avec xp pro sp3 (dual screen ou non), en revanche je l'ai aussi avec mon portable en dual screen (dx9)
Y a bien un truc qui coince

Pour la version debug de directx il faudrait que je prenne les derniers sdk de crosoft, mais je ne sais pas si la procédure ensuite reste identique. Car dans la dernière version sdk il y a apparemment pas mal de choses.
En attendant de corriger tout cela, je crois que la solution va être de jongler entre les subsystem.
- Crystal Noir
- Messages : 892
- Inscription : mar. 27/janv./2004 10:07
Re: Purebasic et Windows 7
bon j'ai du nouveau, et effectué quelques tests, j'en ai parlé sur le forum anglais. L'étau commence à se ressérer.
En fait, hier je me suis dit c'est pas possible, comment se fait-ce (
), que quand je compile un truc avec Dbpro DirectX9; ca marche niquel, initialisation de l'écran niquel et tout, ou quand je lance un jeu que j'ai acheté ca marche et avec purebasic c'est la pinaille.
J'ai un début d'élément de réponse. J'ai cherché ce qui pouvait les différencier. En fait, pourquoi ca marchait ? tout simplement parce que avec Dbpro (et j'avais pas pensé à cela), je compilais un exemple qui était en 3D. Tout comme les jeux commerciaux d'aujourd'hui utilise la 3D.
Alors j'ai dit on va prendre un exemple tout simple de sprite 2D et on va essayer de le mettre en plein écran fullscreen exclu (évidemment c'est en fullscreen exclu que ca plante).
Et là.........marche pas ! même problème.
Nous pouvons donc en conclure que le problème ne survient que :
- Sur une configuration dualscreen
- Uniquement lors de l'initialisation de la fenêtre directx en mode 2D
- Uniquement avec DirectX 9.
Ce n'est pas un problème de drivers comme vous le savez j'ai un peu tout essayé (changer les drivers, réinstall OS et directX, changer la RAM, changer de carte graphique etc.. etc...).
Donc ca vient d'autre chose mais je ne sais pas de quoi. Surtout que certains étant dualscreen n'ont pas le problème, mais d'autres comme moi l'ont.
On pourrait dire que cela ne vient pas de Pb directement, mais je me demande et là ca dépasse mes compétences, si niveau directx9 ya pas un paramètres ou une instruction dans l'API qui permet de gérer le dualscreen.
Je sais par ex qu'il existe dans l'API un moyen d'autoriser l'étendu d'une fenêtre directx à plusieurs écrans,cela dit cela ne corrige pas le problème d'initialisation (vu avec dbpro), cela dit il y a peut être un truc quelque chose.
En fait, hier je me suis dit c'est pas possible, comment se fait-ce (

J'ai un début d'élément de réponse. J'ai cherché ce qui pouvait les différencier. En fait, pourquoi ca marchait ? tout simplement parce que avec Dbpro (et j'avais pas pensé à cela), je compilais un exemple qui était en 3D. Tout comme les jeux commerciaux d'aujourd'hui utilise la 3D.
Alors j'ai dit on va prendre un exemple tout simple de sprite 2D et on va essayer de le mettre en plein écran fullscreen exclu (évidemment c'est en fullscreen exclu que ca plante).
Et là.........marche pas ! même problème.
Nous pouvons donc en conclure que le problème ne survient que :
- Sur une configuration dualscreen
- Uniquement lors de l'initialisation de la fenêtre directx en mode 2D
- Uniquement avec DirectX 9.
Ce n'est pas un problème de drivers comme vous le savez j'ai un peu tout essayé (changer les drivers, réinstall OS et directX, changer la RAM, changer de carte graphique etc.. etc...).
Donc ca vient d'autre chose mais je ne sais pas de quoi. Surtout que certains étant dualscreen n'ont pas le problème, mais d'autres comme moi l'ont.
On pourrait dire que cela ne vient pas de Pb directement, mais je me demande et là ca dépasse mes compétences, si niveau directx9 ya pas un paramètres ou une instruction dans l'API qui permet de gérer le dualscreen.
Je sais par ex qu'il existe dans l'API un moyen d'autoriser l'étendu d'une fenêtre directx à plusieurs écrans,cela dit cela ne corrige pas le problème d'initialisation (vu avec dbpro), cela dit il y a peut être un truc quelque chose.
- Crystal Noir
- Messages : 892
- Inscription : mar. 27/janv./2004 10:07
Re: Purebasic et Windows 7
Bon désolé pour triple quadruple post mais là je suis largué.
J'ai fait pas mal de recherche entre directX et le dualscreen.
Et apparemment c'est pas tout rose.
Tout le monde n'a pas ce problème d'initialisation de fenêtre directX mais on reste quand même nombreux à avoir des soucis en règle général.
Le problème est que je ne suis pas arrivé à trouver de solution.
Il semblerait que directx a du mal en dualscreen en général, on arrive à avoir du tearing par ex. Pour ce qui est du problème cité, je n'ai pas beaucoup d'information.
J'ai fait pas mal de recherche entre directX et le dualscreen.
Et apparemment c'est pas tout rose.
Tout le monde n'a pas ce problème d'initialisation de fenêtre directX mais on reste quand même nombreux à avoir des soucis en règle général.
Le problème est que je ne suis pas arrivé à trouver de solution.
Il semblerait que directx a du mal en dualscreen en général, on arrive à avoir du tearing par ex. Pour ce qui est du problème cité, je n'ai pas beaucoup d'information.
Re: Purebasic et Windows 7
Hello, je n'ai pas répondu avant car le bug arrivai aléatoirement (à cause d'Hydravision je pense)... Bref j'ai trouvé cette info dans la doc du sdk de DX :
Tu peux voir ce que ça donne Crystal ?
Pour l'activer : DirectX Control Panel > Onglet Direct Draw > Advanced Settings... > Enable Multi-Monitor
Je ne peux pas essayer pour l'instant car j'ai prêté mon deuxième écran à un ami.Windowed vs Full-Screen Mode (Direct3D 9)
Direct3D applications can run in either of two modes: full-screen or windowed.
Full-screen mode means the window that the application runs in covers the entire desktop, hiding all running applications (including your development environment). Games typically default to full-screen mode to fully immerse the user in the game by hiding all running applications. An application running in windowed-mode shares the desktop with all running applications. Code differences between full-screen mode and windowed mode are very small.
Because an application running in full-screen mode takes over the screen, debugging the application requires either a separate monitor or the use of a remote debugger. Use the DirectX Control Panel Tool to enable multiple-monitor debugging. One advantage of a windowed-mode application is that you can step through the code in a debugger without multiple monitors or a remote debugger.
Tu peux voir ce que ça donne Crystal ?
Pour l'activer : DirectX Control Panel > Onglet Direct Draw > Advanced Settings... > Enable Multi-Monitor
Re: Purebasic et Windows 7
Bonjour,
je ne sais pas si cela va avancer dans le sujet, mais comme moi je suis en dual screen mais via 2 cartes graphique 1 écran sur chaque et non mes 2 sur la même.
Peut être que c'est pour ça que sous DX 9 ton code fonctionne mieux que sous DX 7 chez moi ?
@++
je ne sais pas si cela va avancer dans le sujet, mais comme moi je suis en dual screen mais via 2 cartes graphique 1 écran sur chaque et non mes 2 sur la même.
Peut être que c'est pour ça que sous DX 9 ton code fonctionne mieux que sous DX 7 chez moi ?
@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
- Crystal Noir
- Messages : 892
- Inscription : mar. 27/janv./2004 10:07
Re: Purebasic et Windows 7
Et voila ce que donne le log :
On voit l'erreur...quant à savoir pourquoi...00000000 0.00000000 [1616] D3D9 Helper: Enhanced D3DDebugging disabled; Application was not compiled with D3D_DEBUG_INFO
00000001 0.08576948 [1616] Direct3D9: (INFO) :======================= Hal MixedVP device selected
00000002 0.08587248 [1616]
00000003 1.25509906 [1616] Direct3D9: (ERROR) :Lost due to display uniqueness change
00000004 1.25532925 [1616]
00000005 1.25621700 [2152] DISPLAYCHANGE...
00000006 1.28857839 [1616] Direct3D9: (INFO) :Using FF to VS converter
00000007 1.28914142 [1616]
00000008 1.28952432 [1616] Direct3D9: (INFO) :Using FF to PS converter
00000009 1.29085708 [1616]
00000010 1.30401444 [1616] Direct3D9: (INFO) :Using X3D PSGP
00000011 1.30411005 [1616]
00000012 1.30655015 [1616] Direct3D9: (INFO) :Using FF to VS converter in software vertex processing
00000013 1.30662131 [1616]
00000014 10.52245522 [2152] DISPLAYCHANGE...
- Crystal Noir
- Messages : 892
- Inscription : mar. 27/janv./2004 10:07
Re: Purebasic et Windows 7
Et voilà un log plus complet et je donne un petit lien avant qui parle de l'erreur mentionné ci dessous :
http://www.gamedev.net/community/forums ... _id=501868
Dans ce topic on peut lire : "The issue disappears when using DirectX 9 Extensions for Vista (IDirect3DDevice9Ex)"...aucun interet on perd la compatibilité xp (lu sur un forum) mais il y a apparement plusieurs solutions.
Voici avant le log quelques phrases que j'ai relevées sur différents topic du net qui parle de cette erreur :
http://www.gamedev.net/community/forums ... _id=501868
Dans ce topic on peut lire : "The issue disappears when using DirectX 9 Extensions for Vista (IDirect3DDevice9Ex)"...aucun interet on perd la compatibilité xp (lu sur un forum) mais il y a apparement plusieurs solutions.
Voici avant le log quelques phrases que j'ai relevées sur différents topic du net qui parle de cette erreur :
I've finally found it! I looked into my code where I was creating my own depth-stencil buffer. It was commented because I wanted the default depth-stencil buffer so I don't have to care about releasing and recreating it. And above the line creating the depth-stencil buffer I noticed I was using GetRenderTarget! And that is the surface DirectX was pointing all the time. I wouldn't probably notice it if you wouldn't mention about that GetBackBuffer function. Thanks a lot for all of your clues!
Well, I have decided I will just destroy the device/object and create new ones. Though I haven't tested it yet (at school now), it seems to be the simplest way to do things since I need to reset it anyways.
When setting the device to full screen mode the hocked window device form’s border style should be set to none (not resizable and no control box) doing this the error disappears.
Et voici le log debug directx 9 :"When you create a new device using the same IDirect3D9 object and focus
window, your original device will lose its surfaces. You will need to call
IDirect3DDevice9::Reset on the first device in order for your application to
use it. For example, to create two devices, do the following:
1.. Create Device 1
2.. Create Device 2
3.. Reset Device 1 "
I can not try it right this second, but I am wondering about how this fits
with me being able to create device0, create device1 and then using them IF
i use the same resolution as the desktop already uses.
00000000 0.00000000 [5848] Direct3D9: :====> ENTER: DLLMAIN(02c4d9a0): Process Attach: 000016d8, tid=00001688
00000001 0.00010176 [5848]
00000002 0.00052188 [5848] Direct3D9: :====> EXIT: DLLMAIN(02c4d9a0): Process Attach: 000016d8
00000003 0.00070708 [5848]
00000004 0.00216104 [5848] Direct3D9: (INFO) :Direct3D9 Debug Runtime selected.
00000005 0.00309200 [5848]
00000006 0.02900712 [5848] D3D9 Helper: Enhanced D3DDebugging disabled; Application was not compiled with D3D_DEBUG_INFO
00000007 0.11736232 [5848] Direct3D9: (INFO) :======================= Hal MixedVP device selected
00000008 0.11756844 [5848]
00000009 0.11770572 [5848] Direct3D9: (INFO) :HalDevice Driver Style b
00000010 0.11785760 [5848]
00000011 0.11813124 [5848] Direct3D9: :Subclassing window 001909ee
00000012 0.11821632 [5848]
00000013 0.11830284 [5848] Direct3D9: :StartExclusiveMode
00000014 0.11838452 [5848]
00000015 0.12036036 [5848] Direct3D9: :WM_ACTIVATEAPP: BEGIN Activating app pid=000016d8, tid=00001688
00000016 0.12066236 [5848]
00000017 0.12349308 [5848] Direct3D9: :*** Active state changing
00000018 0.12373020 [5848]
00000019 0.12384228 [5848] Direct3D9: :WM_ACTIVATEAPP: DONE Activating app pid=000016d8, tid=00001688
00000020 0.12584260 [5848]
00000021 0.96392810 [5848] Direct3D9: :WM_DISPLAYCHANGE: 800x600x32
00000022 0.97147167 [5848]
00000023 1.45634604 [5848] Direct3D9: (ERROR) :Lost due to display uniqueness change
00000024 1.45820832 [5848]
00000025 1.48743796 [2152] DISPLAYCHANGE...
00000026 1.49268556 [5848] Direct3D9: (INFO) :Using FF to VS converter
00000027 1.49403381 [5848]
00000028 1.50952780 [5848] Direct3D9: (INFO) :Using FF to PS converter
00000029 1.51619291 [5848]
00000030 1.52223265 [5848] Direct3D9: (INFO) :Enabling multi-processor optimizations
00000031 1.52462447 [5848]
00000032 1.52912498 [5848] Direct3D9: (INFO) :DDI threading started
00000033 1.53104305 [5848]
00000034 1.53712690 [5848] Direct3D9: (INFO) :Using X3D PSGP
00000035 1.53721428 [5848]
00000036 1.53980196 [5848] Direct3D9: (INFO) :Using FF to VS converter in software vertex processing
00000037 1.54349935 [5848]
00000038 1.54514658 [5848] Direct3D9: (WARN) :Ignoring redundant SetTextureStageState. Stage: 0, State: 4
00000039 1.54900277 [5848]
00000040 1.55190754 [5848] Direct3D9: (WARN) :Ignoring redundant SetSamplerState. Sampler: 0, State: 5
00000041 1.55352259 [5848]
00000042 1.55606341 [5848] Direct3D9: (WARN) :Ignoring redundant SetSamplerState. Sampler: 0, State: 6
00000043 1.55650496 [5848]
00000044 1.55943954 [5848] Direct3D9: :WM_SIZE hWnd=1909EE wp=0002, lp=02580320 dwFlags=00000001
00000045 1.56108820 [5848]
00000046 1.56222498 [5848] Direct3D9: :WM_SIZE: Window restored, sending WM_ACTIVATEAPP
00000047 1.56683052 [5848]
00000048 1.57059741 [5848] Direct3D9: (WARN) :Ignoring redundant SetRenderState - 19
00000049 1.57072997 [5848]
00000050 1.57082224 [5848] Direct3D9: (WARN) :Ignoring redundant SetRenderState - 20
00000051 1.57216930 [5848]
00000052 1.58912563 [5848] Direct3D9: :WM_ACTIVATEAPP: BEGIN Activating app pid=000016d8, tid=00001688
00000053 1.58928251 [5848]
00000054 1.58940768 [5848] Direct3D9: :*** Already activated
00000055 1.58952093 [5848]
00000056 1.58962762 [5848] Direct3D9: :WM_ACTIVATEAPP: DONE Activating app pid=000016d8, tid=00001688
00000057 1.58996403 [5848]
00000058 6.60619116 [5848] Direct3D9: (INFO) :DDI threading stopped
00000059 6.60640955 [5848]
00000060 6.79147530 [5848] Direct3D9: :DoneExclusiveMode
00000061 6.79241133 [5848]
00000062 6.79292107 [5848] Direct3D9: :INACTIVE: 000016d8: Restoring original mode (1680x1050x22x60) at adapter index 0
00000063 7.28990126 [5848]
00000064 7.30421305 [5848] Direct3D9: :WM_DISPLAYCHANGE: 1680x1050x32
00000065 7.97971392 [5848]
00000066 7.98084164 [2152] DISPLAYCHANGE...
00000067 7.98728132 [5848] Direct3D9: :Unsubclassing window 001909ee
00000068 8.00732803 [5848]
00000069 8.02627754 [5848] Direct3D9: :====> ENTER: DLLMAIN(02c4d9a0): Process Detach 000016d8, tid=00001688
00000070 8.02643108 [5848]
00000071 8.02670097 [5848] Direct3D9: (INFO) :MemFini!
00000072 8.02674770 [5848]
00000073 8.02714157 [5848] Direct3D9: :====> EXIT: DLLMAIN(02c4d9a0): Process Detach 000016d8
00000074 8.02744770 [5848]
- Crystal Noir
- Messages : 892
- Inscription : mar. 27/janv./2004 10:07
Re: Purebasic et Windows 7
Bon même si personne n'a d'idée et que c'est foutu car que ce soit ici ou sur le site anglais ca bouge pas beaucoup à ce sujet, j'ai fait un autre test :
J'ai effectué un code mon feu d'artifice par ex, en C# en utilisant le framework xna.
Je me suis mis en fullscreen exclu avec et là....
Ben ca plante pas chez moi
et avec le dualscreen s'il vous plait.
Donc il se passe bien quelque chose avec pure....mais quoi je n'en sais rien.
J'ai effectué un code mon feu d'artifice par ex, en C# en utilisant le framework xna.
Je me suis mis en fullscreen exclu avec et là....
Ben ca plante pas chez moi

Donc il se passe bien quelque chose avec pure....mais quoi je n'en sais rien.