एंड्रॉइड 3 डी त्वरण androVM in primusrun?


19

मैं एक एंड्रॉइड वर्चुअल मशीन की कोशिश कर रहा हूं, जिसे ओआरओवी 12.04 32 बिट लैपटॉप पर इंटेल / एनवीडिया हाइब्रिड ग्राफिक्स कॉन्फ़िगरेशन के साथ अतिथि ओएस (नीचे ग्राफिक कार्ड पर विवरण) के रूप में कहा जाता है। मैंने कुछ ग्राफिक्स-गहन अनुप्रयोगों का परीक्षण किया, जैसे कि एंग्री बर्ड्स, और AnTuTu, एक बेंचमार्किंग एप्लिकेशन, रनिंग virtualboxऔर AndroVMplayerसाथ primusrun, लेकिन वे वास्तव में धीमे लगते हैं, बिना किसी फर्क के जब भी कोई रन करता है primusrun। मैंने भी कोशिश की है optirun, जो बस एक segfault के साथ दुर्घटनाग्रस्त हो जाता है। मैं अपने हाइब्रिड ग्राफिक्स सिस्टम में इस VM के लिए OpenGL त्वरण को कैसे सक्षम कर सकता हूं?

AndroVM संस्करण मैं चला रहा हूँ यह एक है:

androVM_vbox86tp_4.1.1_r6.1-20130222-gapps-हूडिनी-flash.ova

और मैं यहां दिए गए इंस्टॉलेशन निर्देशों का पालन कर रहा हूं:
AndroVM 20130222 रिलीज | AndroVM ब्लॉग

वर्चुअलबॉक्स के तहत, मेरे पास 128MB वीडियो मेमोरी और सक्षम 3 डी एक्सेलेरेशन और 2 डी एक्सेलेरेशन के लिए स्विच किए गए ग्राफिक्स विकल्प हैं। मेरे होस्ट BIOS में इसके वर्चुअलाइजेशन विकल्प सक्रिय हैं। यहाँ मेरे हार्डवेयर विवरण हैं:

sudo primusrun lshw -class display

*-display               
   description: VGA compatible controller
   product: GT218 [GeForce 310M]
   vendor: NVIDIA Corporation
   physical id: 0
   bus info: pci@0000:01:00.0
   version: a2
   width: 64 bits
   clock: 33MHz
   capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
   configuration: driver=nvidia latency=0
   resources: irq:16 memory:d2000000-d2ffffff memory:c0000000-cfffffff memory:d0000000-d1ffffff ioport:d000(size=128) memory:d3000000-d307ffff
*-display
   description: VGA compatible controller
   product: Core Processor Integrated Graphics Controller
   vendor: Intel Corporation
   physical id: 2
   bus info: pci@0000:00:02.0
   version: 18
   width: 64 bits
   clock: 33MHz
   capabilities: msi pm vga_controller bus_master cap_list rom
   configuration: driver=i915 latency=0
   resources: irq:52 memory:d3400000-d37fffff memory:b0000000-bfffffff ioport:e080(size=8)

उपयोग करते समय optirun ./AndroVMplayer, मुझे यह मिलता है:

[VGL] WARNING: The OpenGL rendering context obtained on X display
[VGL]    :8 is indirect, which may cause performance to suffer.
[VGL]    If :8 is a local X display, then the framebuffer device
[VGL]    permissions may be set incorrectly.
Got command 1002
Got command 1002
Got command 1
Got command 1002
Segmentation fault (core dumped)

और यहाँ मेरे virtualbox स्थापना के विवरण हैं:

 dpkg -l virtualbox* | grep ii    

ii  virtualbox                                4.1.12-dfsg-2ubuntu0.2                               x86 virtualization solution - base binaries
ii  virtualbox-dkms                           4.1.12-dfsg-2ubuntu0.2                               x86 virtualization solution - kernel module sources for dkms
ii  virtualbox-guest-additions                4.1.12-1                                             transitional package for virtualbox-guest-additions-iso
ii  virtualbox-guest-additions-iso            4.1.12-1                                             guest additions iso image for VirtualBox
ii  virtualbox-guest-dkms                     4.1.12-dfsg-2ubuntu0.2                               x86 virtualization solution - guest addition module source for dkms
ii  virtualbox-guest-utils                    4.1.12-dfsg-2ubuntu0.2                               x86 virtualization solution - non-X11 guest utilities
ii  virtualbox-guest-x11                      4.1.12-dfsg-2ubuntu0.2                               x86 virtualization solution - X11 guest utilities
ii  virtualbox-qt                             4.1.12-dfsg-2ubuntu0.2                               x86 virtualization solution - Qt based user interface

अगर मैं इसे चलाता हूं optirun, तो मुझे निम्नलिखित त्रुटि मिलती है:

> [VGL] WARNING: The OpenGL rendering context obtained on X display
> [VGL]    :8 is indirect, which may cause performance to suffer. [VGL] 
> If :8 is a local X display, then the framebuffer device [VGL]   
> permissions may be set incorrectly.
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glCompileShader:351
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glGetShaderiv:1215
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glGetShaderInfoLog:1238
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glGetUniformLocation:1382
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glCompileShader:351
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glGetShaderiv:1215
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glGetShaderInfoLog:1238
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glGetUniformLocation:1382
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glGetUniformLocation:1382
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glCompileShader:351
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glGetShaderiv:1215
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glGetShaderInfoLog:1238
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glGetUniformLocation:1382
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glGetUniformLocation:1382
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glCompileShader:351
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glGetShaderiv:1215
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glGetShaderInfoLog:1238
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glGetUniformLocation:1382
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glGetUniformLocation:1382
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glGetUniformLocation:1382
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glCompileShader:351
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glGetShaderiv:1215
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glGetShaderInfoLog:1238
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glGetUniformLocation:1382
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glGetUniformLocation:1382
> error 0x501
> sdk/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUseProgram:1913
> error 0x501 AndroVMplayer: ../../src/xcb_conn.c:180: write_vec:
> Assertion `!c->out.queue_len' failed. Aborted (core dumped)

मैंने अपने आउटपुट को सही किया जो मुझे चल रहा है sudo primusrun lshw -class displayऔर दोनों कार्ड दिखाते हैं। इसके अलावा, जब मैं चलता primusrun firefoxहूं तो मुझे इस वेबसाइट webglsamples.googlecode.com/hg/aquarium/aquarium.html पर लगभग 40-50fps मिलता है । मैं केवल लगभग 5fps बिना प्राप्त करता हूं primusrun
719016

हम्म् - शायद आवश्यकता नहीं है - क्या आपको androvm.org/blog/androvm-documentation के अनुसार androvm में परिभाषित हार्डवेयर सक्षम करने वाली हार्डवेयर सक्षम है ?
fossfreedom

हां, जब मैं ./AndroVMplayerपहली बार एक ताजा वीएम पर कॉल करता हूं, तो मैं "हार्डवेयर एक्सेलेरेशन सक्षम करें" पर क्लिक करता हूं।
719016

... और आपने अपने नेटवर्क को सेटअप करने के लिए उस लिंक में हार्डवेयर ओपेंगल सेक्शन का अनुसरण किया है और रन.श स्क्रिप्ट के माध्यम से चल रहा है - या स्क्रिप्ट का एक प्रकार जो प्राइमरसून का उपयोग करता है?
जीवाश्म

1
2 डी त्वरण अक्षम किया जाना चाहिए, मेथिंक। केवल 3 डी।
क्यूबिक

जवाबों:


1

एंड्रॉइड वातावरण चलाने पर ओपनजीएल विशिष्ट नियमों का उपयोग करता है। मैं आपके प्रश्न का पूरी तरह से उत्तर देने में सक्षम नहीं हूं, लेकिन मैं आपको एक एंड्रॉइड देव किट की सिफारिश कर सकता हूं। developer.android.com/sdk/ एक बार यह सेट हो जाने के बाद, यह आपके सेटअप को रेंडरिंग के अनुकूलतम उपयोग के लिए स्वचालित रूप से कॉन्फ़िगर कर देगा, और यह एक 3D एंड्रॉइड वातावरण की आपूर्ति कर सकता है।


1

आप GenyMotion की कोशिश करते हैं । यह x86- मोड में सेट-अप और रन के लिए केवल एक क्लिक है।

यह वास्तव में तेज एंड्रॉइड एमुलेटर है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.