2013-01-02 26 views
18

मुझे लगता है कि विन्यास चल रहा हूँ:ओपन और GLSL 3.3 पर एक HD ग्राफ़िक्स 4000 उबंटू के तहत 12.04

  • Ubuntu 12.04
  • Intel HD ग्राफ़िक्स 4000

glxinfo मुझे दे कि पैरामीटर:

OpenGL renderer string: Mesa X11 
OpenGL version string: 2.1 Mesa 8.0.4 
OpenGL shading language version string: 1.20 
OpenGL extensions: 

मेरा लक्ष्य ओपन 3.3 चलाने के लिए था (और इसलिए GLSL 3.3)। अगर मैं विकास के मुद्दों के साथ आसान हूं, तो मैं हार्डवेयर और ड्राइवरों में खो गया हूं, तो क्या कोई मेरी कॉन्फ़िगरेशन के साथ इसे प्राप्त करने का तरीका जानता है?

+0

कई अलग-अलग ड्राइवरों, पैकेजों को स्थापित करने के बाद, मैं 'ओपनजीएल संस्करण स्ट्रिंग: 3.0 मेसा 8.0.4 और ओपनजीएल छायांकन भाषा संस्करण स्ट्रिंग: 1.30' में अपग्रेड करने का प्रबंधन करता हूं। क्या कोई कम से कम ओपनजीएल 3.3 में सफल होता है? – muxisar

उत्तर

1

दुर्भाग्य से इस पल में ऐसा लगता है कि यह संभव नहीं है, क्योंकि इंटेल द्वारा प्रदान किए गए ओपन सोर्स ड्राइवर केवल उपलब्ध हैं। आपके से एक संस्करण नया है (मेसा 9.0.1) लेकिन यह अभी भी ओपनजीएल 3.0 और जीएलएसएल 1.30 का समर्थन करता है, क्योंकि आप Intel Open Source website पर रिलीज नोट्स में पढ़ सकते हैं।

समस्या

है कि खुले स्रोत ड्राइवरों, मेसा, जो इस समय केवल GLSL 1.40 का समर्थन करता है के साथ फंस रहे हैं के रूप में आप देख सकते हैं: http://www.mesa3d.org/shading.html#support

मुझे डर लग रहा है कि आप एक ओपन 3.3 वातावरण का उपयोग करने की आवश्यकता है , आपको उपलब्ध बाइनरी ड्राइवरों (एनवीडिया या एटीआई कार्ड) के साथ एक समर्पित जीपीयू प्राप्त करने की आवश्यकता होगी।

30

ग्रेट न्यूज !!!

मेसा 10Opengl 3.3 और GLSL 3.3 के लिए समर्थन का मतलब है जो बाहर है!

यह एचडी 4400 ग्राफिक्स चिपसेट के साथ मेरे चौथे पीढ़ी कोर i5 मोबाइल प्रोसेसर पर परीक्षण किया जाता है।

आधुनिक OpenGL अब लिनक्स में एकीकृत इंटेल चिपसेट पर विकास संभव है! यह एक बड़ा कदम आगे है। Note that ubuntu 15.04 ship with Mesa 10.5

यहाँ मुझे एक त्रिकोण प्रतिपादन है एक GLSL 3.3 छायांकर्ता :)

का उपयोग कर

glsl 3.3 shader

ठीक क्रम उबंटू 13.10 पर यह काम करने के लिए आप करने जा रहे हैं प्रयोगात्मक ड्राइवरों प्राप्त करने के लिए तो कुछ चीजें करने की जरूरत है:

# Note this will take awhile! 
1.) Add the PPA Repository 
    $ sudo add-apt-repository ppa:oibaf/graphics-drivers 
2.) Update sources 
    $ sudo apt-get update 
3.) Dist-upgrade (rebuilds many packages) 
    $ sudo apt-get dist-upgrade 
4.) Reboot! 

In your code make sure you request a Opengl 3.3 context! 

भागो इस आदेश 0,123, आप कुछ की तरह मिलना चाहिए ...

OpenGL vendor string: Intel Open Source Technology Center 
OpenGL renderer string: Mesa DRI Intel(R) Haswell Mobile 
OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.1.0-devel (git-f9cfe5c  saucy-oibaf-ppa) 
OpenGL core profile shading language version string: 3.30 
OpenGL core profile context flags: (none) 
OpenGL core profile profile mask: core profile 

स्रोत लेख

http://www.phoronix.com/scan.php?page=news_item&px=MTQ5OTk

https://launchpad.net/~oibaf/+archive/graphics-drivers/

+1

आपकी पोस्ट के लिए धन्यवाद, यह वास्तव में सहायक है! अजीब बात यह है कि, 'glxinfo' मेरे लिए मेसा 10.1 की रिपोर्ट करता है, फिर भी केवल ओपनजीएल 3.0 उपलब्ध है। क्या आपको कोई विचार है कि ऐसा क्यों हो सकता है? मैंने यहां प्रश्न पोस्ट किया: http://stackoverflow.com/questions/21565680/how-to-enable-opengl-3-3-using-mesa-10-1-on-ubuntu धन्यवाद! –

+0

http://stackoverflow.com/questions/25936165/ubuntu-opengl-3-inside-vmware - क्या आप कृपया इस प्रश्न के साथ मेरी मदद कर सकते हैं?मुझे सॉफ़्टवेयर रेंडरर का उपयोग करके मजबूर होना पड़ता है क्योंकि मेरा उबंटू VmWare –

+0

में चल रहा है यह 14.04 में अभी तक काम नहीं कर रहा है (यह अब जून है)। glxinfo कोर प्रोफाइल के लिए एक ही स्ट्रिंग की रिपोर्ट करता है लेकिन फिर: ओपनजीएल संस्करण स्ट्रिंग: 3.0 मेसा 10.7.0-डेवेल (गिट-एफ 97166e 2015-06-01 ट्रस्टी-ओबाफ-पीपीए) ओपनजीएल छायांकन भाषा संस्करण स्ट्रिंग 1.30 और जब मैं बनाता हूं ग्लूट अनुरोध संस्करण 3.3 के साथ एक संदर्भ मुझे अभी भी एक संस्करण 3.0 संदर्भ मिलता है। – cheshirekow

5

तो Ive यह आसपास के धागे का एक बहुत देखा है और मैं यहाँ सोचा जवाब देने के लिए एक अच्छी जगह होगी। मैं इंटेल ivybridge के साथ उबंटू 15.04 चला रहा हूँ।

OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.6.0 
OpenGL core profile shading language version string: 3.30 
OpenGL version string: 3.0 Mesa 10.6.0 
OpenGL shading language version string: 1.30 
इस आपको लगता है कि कोर प्रोफ़ाइल और GLSL संस्करण 3.3 रहे हैं, लेकिन देख सकते हैं से

अब संगत ओपन केवल है: आवेदन "लिनक्स के लिए इंटेल ग्राफिक्स संस्थापक" का उपयोग करने के बाद, glxinfo ओपन के बारे में निम्नलिखित जानकारी देता है 3.0 इस प्रकार यदि आप चाहते हैं कि आपका कोड 3.3 के साथ चलाना है तो आपको दोनों को ओपनग्ल कोर प्रोफाइल और एक glsl कोर प्रोफाइल निर्दिष्ट करना होगा।

#version 330 core

  • आप ओपन चाहते 3.3 निर्दिष्ट करें:

    • GLSL #version है कि आप कोर प्रोफ़ाइल चाहते हैं निर्दिष्ट करना चाहिए: यदि आप freeglut और Glew का उपयोग कर निम्न चरणों को काम करना चाहिए:

    glutInitContextVersion (3, 3);

    • और अंत में सत्य पर glewExperimental सेट glewInit() से पहले:

    glewExperimental = GL_TRUE;

    संपादित करें:

    कुछ मैं उल्लेख करना भूल गया जो सबसे अधिक के लिए प्रासंगिक हो रहा है * फ्रीग्लूट का उपयोग करने वाले निक्स उपयोगकर्ता गहराई से परीक्षण के संबंध में हैं, i, ई किसी विशेष दृश्य बिंदु से जाल के लिए क्या खींचा जाना चाहिए (और क्या नहीं होना चाहिए):

    लिनक्स पर गहराई परीक्षण का उपयोग करने के लिए, आप केवल के माध्यम से

    (glEnable(GL_DEPTH_TEST);

    गहराई परीक्षण सक्षम करने की आवश्यकता नहीं है, लेकिन आप भी (Windows आम तौर पर एक है लगता है गहराई बफर करने के लिए अपने भरमार संदर्भ बनाने की जरूरत डिफ़ॉल्ट रूप से गहराई बफर, लिनक्स नहीं करता है)।

    फ्रीग्लूट का उपयोग करना मतलब है कि आपको में GLUT_DEPTH शामिल करने की आवश्यकता है ताकि यह गहराई बफर रखने के लिए संदर्भ बनाता है, उदा।

    glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB|GLUT_DEPTH);

    पी.एस. मैं केवल फ्रीग्लूट का उपयोग कर रहा हूं क्योंकि मैंने जो कॉलेज मॉड्यूल लिया है, वह हमें इसका उपयोग करने के लिए डेमो कोड देता है। तब से मैं निश्चित रूप से glfw पर स्विच करने की अनुशंसा करता हूं। मेरे उत्तर का पहला भाग अभी भी बहुत अधिक लागू होता है, बस इसके बजाय glfw विधियों के साथ।