Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Microsoft publie une mise à jour de DirectX 12
Et améliore les fonctionnalités liées au lancer de rayon et intègre les shaders de modèles

Le , par LittleWhite

17PARTAGES

14  0 
DirectX 12 évolue et reçoit une nouvelle mise à jour, estampillée DirectX 12_2. Contrairement à une version majeure, les mises à jour sont optionnelles. C'est-à-dire qu'un constructeur peut très bien mentionner le support de DirectX 12 (et le fournir à travers un pilote graphique DirectX 12), sans pour autant avoir l'obligation de supporter les nouveautés de DirectX 12_2. Ce mécanisme peut être comparé aux extensions d'OpenGL ou de Vulkan. D'ailleurs, ce nouvel ensemble de fonctionnalité sera supporté par les cartes graphiques NVIDIA RTX (GeForce et Quadro), par les cartes embarquant la nouvelle architecture RDNA2 chez AMD et sur les prochains GPU embarqués d'Intel. Aussi Qualcomm travaille avec Microsoft pour supporter les nouvelles fonctionnalités sur Snapdragon.
Tout comme pour les extensions OpenGL/Vulkan, le programme doit d'abord vérifier si la carte graphique dispose du support des nouvelles fonctionnalités avant de les utiliser. Si c'est le cas (et que le programme utilise les nouvelles fonctionnalités), le rendu pourra être plus détaillé ou le programme sera plus rapide. Aussi, on peut facilement imaginer que les nouvelles fonctionnalités feront partie des fonctionnalités obligatoires de la prochaine version majeure de DirectX. Aussi, si la carte graphique supporte les fonctionnalités apportées avec DirectX 12_2, alors il est assuré qu'elle supporte les fonctionnalités de DirectX 12 et de la première mise à jour DirectX 12_1.

Pour détecter si une carte offre le support de cette nouvelle version, vous pouvez utiliser le code suivant :
Code c : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
 D3D12_FEATURE_DATA_FEATURE_LEVELS cap{};
cap.NumFeatureLevels = 1;
D3D_FEATURE_LEVEL requested = D3D_FEATURE_LEVEL_12_2; // D3D_FEATURE_LEVEL_12_2 = 0xc200
cap.pFeatureLevelsRequested = &requested;
if (SUCCEEDED(device->CheckFeatureSupport(
    D3D12_FEATURE_FEATURE_LEVELS,
    &cap,
    sizeof(cap)))
    && cap.MaxSupportedFeatureLevel == requested)
{
    // cette carte supporte DirectX 12_2
}
Pour rappel, la création d'un Device pour DirectX se fait ainsi :
Code : Sélectionner tout
1
2
3
4
5
6
7
ComPtr<ID3D12Device> device;
D3D_FEATURE_LEVEL featureLevel = D3D_FEATURE_LEVEL_12_2;
HRESULT hr = D3D12CreateDevice(nullptr, featureLevel, IID_PPV_ARGS(&m_spDevice));
if (SUCCEEDED(hr))
{
    // feature level is supported by default adapter
}
Cette nouvelle version assure le support des fonctionnalités suivantes :
  • le modèle de shader 6.5 ;
  • le lancer de rayon (Tier 1.1) ;
  • le shading à taux de rafraîchissement variable (Tier 2) ;
  • les shader de modèle (Tier 1) ;
  • le retour d’échantillonneur (Tier 0.9) ;
  • la liaison de ressources (Tier 3) ;
  • le rendu en tuiles (Tier 3) ;
  • la rasterization conservative (Tier 3) ;
  • la signature racine (Tier 1.1) ;
  • la limitation des tests de profondeur ;
  • MaxGPUVirtualAddressBitsPerResource et MaxGPUVirtualAddressBitsPerProcess sont au minimum à 40 ;
  • WriteBufferImmediateSupportFlags propose les modes Direct, Compute et Bundle.

De plus, les valeurs suivantes sont à vrai :
  • WaveOps ;
  • OutputMergerLogicOp ;
  • VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportWithoutGSEmulation ;
  • CopyQueueTimestampQueriesSupported ;
  • CastingFullyTypedFormatSupported ;
  • Int64ShaderOps.


Les fonctionnalités de cette nouvelle version sont disponibles depuis la mise à jour de mai de Windows 10 et DirectX 12_2 est disponible à partir de la version 20170 du SDK (actuellement, en version 19041). Il faut donc passer par le programme Insider pour y accéder dès maintenant.

Source

Annonce sur le blog pour les développeurs de Microsoft.
Plus de détails ici.

Une erreur dans cette actualité ? Signalez-le nous !