వల్కాన్ గ్రాఫిక్స్ APIకి కాల్లను ప్రసారం చేయడం ద్వారా పనిచేసే Direct3D 1.7 అమలుతో వైన్ ప్రాజెక్ట్ vkd3d 12 ప్యాకేజీ విడుదలను ప్రచురించింది. ప్యాకేజీలో Direct3D 3 అమలులతో libvkd12d లైబ్రరీలు, షేడర్ మోడల్స్ 3 మరియు 4 యొక్క అనువాదకుడితో libvkd5d-షేడర్ మరియు Direct3D 3 అప్లికేషన్ల పోర్టింగ్ను సులభతరం చేసే ఫంక్షన్లతో కూడిన libvkd12d-యూటిల్స్, అలాగే పోర్ట్ల సెట్తో సహా డెమో ఉదాహరణలు ఉన్నాయి. Direct3Dకి glxgears 12. ప్రాజెక్ట్ కోడ్ LGPLv2.1 కింద లైసెన్స్తో పంపిణీ చేయబడింది.
libvkd3d లైబ్రరీ గ్రాఫిక్స్ మరియు గణన సౌకర్యాలు, క్యూలు మరియు కమాండ్ లిస్ట్లు, హ్యాండిల్స్ మరియు హీప్ హ్యాండిల్స్, రూట్ సిగ్నేచర్లు, అవుట్-ఆఫ్-ఆర్డర్ యాక్సెస్, శాంప్లర్లు, కమాండ్ సిగ్నేచర్లు, రూట్ స్థిరాంకాలు, పరోక్ష రెండరింగ్, క్లియర్ మెథడ్స్తో సహా చాలా Direct3D 12 ఫీచర్లకు మద్దతు ఇస్తుంది *( ) మరియు కాపీ *(). libvkd3d-shaderలో, షేడర్ మోడల్స్ 4 మరియు 5 బైట్కోడ్ని ఇంటర్మీడియట్ SPIR-V ప్రాతినిధ్యంలోకి అనువదించడం అమలు చేయబడుతుంది. వెర్టెక్స్, పిక్సెల్, టెస్సెల్లేషన్, కంప్యూట్ మరియు సింపుల్ జ్యామితి షేడర్లు, రూట్ సిగ్నేచర్ సీరియలైజేషన్ మరియు డీరియలైజేషన్కు మద్దతు ఇస్తుంది. షేడర్ సూచనలలో అంకగణితం, అటామిక్ మరియు బిట్ ఆపరేషన్లు, పోలిక మరియు డేటా ఫ్లో కంట్రోల్ ఆపరేటర్లు, నమూనా, సేకరణ మరియు లోడ్ సూచనలు, ఆర్డర్ చేయని యాక్సెస్ ఆపరేషన్లు (UAV, క్రమం లేని యాక్సెస్ వ్యూ) ఉన్నాయి.
కొత్త వెర్షన్లో:
- HLSL (హై-లెవల్ షేడర్ లాంగ్వేజ్)లో షేడర్ కంపైలర్ను మెరుగుపరచడానికి పని కొనసాగింది:
- కస్టమ్ ఫంక్షన్లకు కాల్ చేయగల సామర్థ్యం జోడించబడింది మరియు కస్టమ్ ఫంక్షన్లకు పారామీటర్లుగా శ్రేణులను ఉపయోగించండి.
- SV_DispatchThreadID, SV_GroupID మరియు SV_GroupThreadID పారామితులకు మద్దతు జోడించబడింది.
- అంతర్నిర్మిత విధులు అన్నీ(), దూరం(), exp(), exp2(), frac(), lit(), reflect(), sin(), cos(), smoothstep(), sqrt(), rsqrt జోడించబడ్డాయి () , step(), transpose().
- "min16float" వంటి తక్కువ ఖచ్చితమైన ఫ్లోటింగ్ పాయింట్ రకాలకు ప్రారంభ మద్దతు జోడించబడింది.
- Direct3D 1/2/3 షేడర్ మోడల్ ప్రొఫైల్లకు గణనీయంగా మెరుగైన మద్దతు.
- DXBC బైనరీ డేటా యొక్క పార్సింగ్ (vkd3d_shader_parse_dxbc) మరియు సీరియలైజేషన్ (vkd3d_shader_serialize_dxbc) కోసం పబ్లిక్ API జోడించబడింది.
మూలం: opennet.ru