Strony: 1 [2]
Drukuj
Autor Wątek: Karta graficzna do laptopa  (Przeczytany 1155 razy)
0 użytkowników i 2 Gości przegląda ten wątek.
psrebniak
Miętowy liść
*

Reputacja 0
Offline Offline

Distro: Julia
Wiadomości: 25


Zobacz profil
« Odpowiedz #15 : Listopad 12, 2011, 12:09:10 »

Z tego co czytałem na kilku forach to Intel leci sobie w kulki w mimo obsługi OGL 3.x w version string nadal wstawia 2.1.
Mógłby ktoś z Intelem na pokładzie skompilować taki kod?
Kod:
#include <GL/glx.h>
#include <GL/gl.h>
#include <unistd.h>
#include <iostream>
#include <X11/Xlib.h>

#define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091
#define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092
typedef GLXContext (*GLXCREATECONTEXTATTRIBSARBPROC)(Display*, GLXFBConfig, GLXContext, Bool, const int*);


int main (int argc, char ** argv){
Display *dpy = XOpenDisplay(0);

int nelements;
GLXFBConfig *fbc = glXChooseFBConfig(dpy, DefaultScreen(dpy), 0, &nelements);

//kontekst z jednym bitem RGB, bez buforu glebii i AA
//static int attributeList[] = { GLX_RGBA, GLX_DOUBLEBUFFER, GLX_RED_SIZE, 1, GLX_GREEN_SIZE, 1, GLX_BLUE_SIZE, 1, None };


//kontekst z 8b RGB + 24 D + 4xAA
int attrList[] =
{
GLX_RGBA,
GLX_DOUBLEBUFFER,
GLX_RED_SIZE, 8,
GLX_GREEN_SIZE, 8,
GLX_BLUE_SIZE, 8,
GLX_DEPTH_SIZE, 24,
GLX_SAMPLE_BUFFERS_ARB, GL_TRUE,
GLX_SAMPLES_ARB, 4,
None
};


XVisualInfo *vi = glXChooseVisual(dpy, DefaultScreen(dpy),attrList);

XSetWindowAttributes swa;
swa.colormap = XCreateColormap(dpy, RootWindow(dpy, vi->screen), vi->visual, AllocNone);
swa.border_pixel = 0;
swa.event_mask = StructureNotifyMask;
Window win = XCreateWindow(dpy, RootWindow(dpy, vi->screen), 0, 0, 100, 100, 0, vi->depth, InputOutput, vi->visual, CWBorderPixel|CWColormap|CWEventMask, &swa);

XMapWindow (dpy, win);

//oldstyle context:
// GLXContext ctx = glXCreateContext(dpy, vi, 0, GL_TRUE);

std::cout << "glXCreateContextAttribsARB " << (void*) glXGetProcAddress((const GLubyte*)"glXCreateContextAttribsARB") << std::endl;

GLXCREATECONTEXTATTRIBSARBPROC glXCreateContextAttribsARB = (GLXCREATECONTEXTATTRIBSARBPROC) glXGetProcAddress((const GLubyte*)"glXCreateContextAttribsARB");

int attribs[] = {
GLX_CONTEXT_MAJOR_VERSION_ARB, 3,
GLX_CONTEXT_MINOR_VERSION_ARB, 0,
0};

GLXContext ctx = glXCreateContextAttribsARB(dpy, *fbc, 0, true, attribs);

glXMakeCurrent (dpy, win, ctx);

glClearColor (0, 0.5, 1, 1);
glClear (GL_COLOR_BUFFER_BIT);
glXSwapBuffers (dpy, win);

sleep(1);

glClearColor (1, 0.5, 0, 1);
glClear (GL_COLOR_BUFFER_BIT);
glXSwapBuffers (dpy, win);

sleep(1);

ctx = glXGetCurrentContext();
glXDestroyContext(dpy, ctx);
}

Kompilacja: kod zapisujemy jako example.cpp i w konsoli walimy:
# g++ example.cpp -o example -lGL -lX11
# ./example

i wstawić to co wywali konsola. Będzie to albo błąd kompilacji (undefined reference) albo glXCreateContextAttribsARB i jego adres w pamięci.
Pozdrawiam
Zapisane
Ulvhedin
Siewca Mięty
Miętowy krzew
*****

Reputacja 0
Offline Offline

Płeć: Mężczyzna
Distro: Arch+e17
Wiadomości: 481



Zobacz profil
« Odpowiedz #16 : Listopad 14, 2011, 11:58:25 »

jak nie dostaniesz wczesniej odpowiedzi to puszcze to wieczorem w domu..
Zapisane

MB:ASUS Barebone P2-M2A690G|ASUS 1215N|ASUS A8H
psrebniak
Miętowy liść
*

Reputacja 0
Offline Offline

Distro: Julia
Wiadomości: 25


Zobacz profil
« Odpowiedz #17 : Listopad 14, 2011, 08:32:37 »

Bardzo bym prosił. Jednak te kilka stówek w kieszeni zawsze cieszy, szczególnie gdy budżet jest ograniczony do stypendium naukowego + wypłata za praktyke. Poza tym znaczna większość nowych Nvidii to Optimusy, których wolałbym jednak unikać, dopóki bumblebee nie będzie dopracowany.
Zapisane
Forum Linux Mint
« Odpowiedz #17 : Listopad 14, 2011, 08:32:37 »

 Zapisane
Ulvhedin
Siewca Mięty
Miętowy krzew
*****

Reputacja 0
Offline Offline

Płeć: Mężczyzna
Distro: Arch+e17
Wiadomości: 481



Zobacz profil
« Odpowiedz #18 : Listopad 15, 2011, 07:03:32 »

Skompilowane na Asus EeePC 1215N
Kod:
/tmp/ccOFeDAi.o: In function `main':
example.cpp:(.text+0x16): undefined reference to `XOpenDisplay'
example.cpp:(.text+0x50): undefined reference to `glXChooseFBConfig'
example.cpp:(.text+0x11b): undefined reference to `glXChooseVisual'
example.cpp:(.text+0x173): undefined reference to `XCreateColormap'
example.cpp:(.text+0x21e): undefined reference to `XCreateWindow'
example.cpp:(.text+0x23f): undefined reference to `XMapWindow'
example.cpp:(.text+0x24c): undefined reference to `glXGetProcAddress'
example.cpp:(.text+0x28b): undefined reference to `glXGetProcAddress'
example.cpp:(.text+0x330): undefined reference to `glXMakeCurrent'
example.cpp:(.text+0x358): undefined reference to `glClearColor'
example.cpp:(.text+0x364): undefined reference to `glClear'
example.cpp:(.text+0x37e): undefined reference to `glXSwapBuffers'
example.cpp:(.text+0x3b2): undefined reference to `glClearColor'
example.cpp:(.text+0x3be): undefined reference to `glClear'
example.cpp:(.text+0x3d8): undefined reference to `glXSwapBuffers'
example.cpp:(.text+0x3e9): undefined reference to `glXGetCurrentContext'
example.cpp:(.text+0x40a): undefined reference to `glXDestroyContext'
collect2: ld returned 1 exit status

« Ostatnia zmiana: Listopad 15, 2011, 07:05:07 wysłana przez Ulvhedin » Zapisane

MB:ASUS Barebone P2-M2A690G|ASUS 1215N|ASUS A8H
psrebniak
Miętowy liść
*

Reputacja 0
Offline Offline

Distro: Julia
Wiadomości: 25


Zobacz profil
« Odpowiedz #19 : Listopad 15, 2011, 07:45:10 »

Kompilowałeś z parametrami -lGL -lX11 ?
Jak by nie działało to możesz spróbować dodatkowo -lGLU
Zapisane
Ulvhedin
Siewca Mięty
Miętowy krzew
*****

Reputacja 0
Offline Offline

Płeć: Mężczyzna
Distro: Arch+e17
Wiadomości: 481



Zobacz profil
« Odpowiedz #20 : Listopad 16, 2011, 12:12:58 »

ach ok... moj blad... literowka...
bez -lGLU i z GLUTem
Naruszenie ochrony pamieci...
« Ostatnia zmiana: Listopad 16, 2011, 12:18:47 wysłana przez Ulvhedin » Zapisane

MB:ASUS Barebone P2-M2A690G|ASUS 1215N|ASUS A8H
psrebniak
Miętowy liść
*

Reputacja 0
Offline Offline

Distro: Julia
Wiadomości: 25


Zobacz profil
« Odpowiedz #21 : Listopad 16, 2011, 11:56:38 »

Nie mam pojęcia o co może chodzić ale nie znajduję Ci funkcji takich jak XOpenDisplay czy glClear, które są na pewno w libach X11 i GL.
Z GLUTem na pewno nie będzie działać bo to nie ta biblioteka.
Jesteś pewny że dawałeś -lGL -lX11 ,gdzie -l to minus małe L ?
Zapisane
Ulvhedin
Siewca Mięty
Miętowy krzew
*****

Reputacja 0
Offline Offline

Płeć: Mężczyzna
Distro: Arch+e17
Wiadomości: 481



Zobacz profil
« Odpowiedz #22 : Listopad 16, 2011, 12:01:14 »

tak... te bledy z brakiem funkcji juz nie mam, tylko blad naruszenia pamieci..
Zapisane

MB:ASUS Barebone P2-M2A690G|ASUS 1215N|ASUS A8H
psrebniak
Miętowy liść
*

Reputacja 0
Offline Offline

Distro: Julia
Wiadomości: 25


Zobacz profil
« Odpowiedz #23 : Listopad 16, 2011, 04:09:47 »

Podczas uruchamiania?
Spróbuj jeszcze wywalić tą linijkę i będzie wszystko wiadomo:
Kod:
std::cout << "glXCreateContextAttribsARB " << (void*) glXGetProcAddress((const GLubyte*)"glXCreateContextAttribsARB") << std::endl;
Zapisane
Ulvhedin
Siewca Mięty
Miętowy krzew
*****

Reputacja 0
Offline Offline

Płeć: Mężczyzna
Distro: Arch+e17
Wiadomości: 481



Zobacz profil
« Odpowiedz #24 : Listopad 16, 2011, 11:08:05 »

Naruszenie ochronie pamieci. Kompiluje sie bez bledow. Linijka usunieta.
Zapisane

MB:ASUS Barebone P2-M2A690G|ASUS 1215N|ASUS A8H
psrebniak
Miętowy liść
*

Reputacja 0
Offline Offline

Distro: Julia
Wiadomości: 25


Zobacz profil
« Odpowiedz #25 : Listopad 17, 2011, 09:48:45 »

Czyli nie wiem o co może chodzić. Skoro kompilator znajduje adres funkcji to powinno wszystko działać.
W takim bądź razie nie będę ryzykował. Dzięki za poświęcony czas.
Pozdrawiam.

PS. Jest tu opcja dodawania pochwał?
Zapisane
Ulvhedin
Siewca Mięty
Miętowy krzew
*****

Reputacja 0
Offline Offline

Płeć: Mężczyzna
Distro: Arch+e17
Wiadomości: 481



Zobacz profil
« Odpowiedz #26 : Listopad 17, 2011, 10:05:33 »

hehe... nie ma sprawy.. Język
Zapisane

MB:ASUS Barebone P2-M2A690G|ASUS 1215N|ASUS A8H
psrebniak
Miętowy liść
*

Reputacja 0
Offline Offline

Distro: Julia
Wiadomości: 25


Zobacz profil
« Odpowiedz #27 : Listopad 17, 2011, 10:54:10 »

A mógłbyś jeszcze spróbować skompilować takie coś?
Kod:
#include <GL/glx.h>
#include <GL/gl.h>
#include <unistd.h>
#include <iostream>
#include <X11/Xlib.h>

#define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091
#define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092
typedef GLXContext (*GLXCREATECONTEXTATTRIBSARBPROC)(Display*, GLXFBConfig, GLXContext, Bool, const int*);


int main (int argc, char ** argv){
std::cout << "glXCreateContextAttribsARB " << (void*) glXGetProcAddress((const GLubyte*)"glXCreateContextAttribsARB") << std::endl;
}

Kompilacja:
# g++ example.cpp -o ex -lGL
# ./ex

Będę wiedział czy błąd powoduje funkcjonalność OGL3.x błąd tworzenia okna.
Zapisane
Ulvhedin
Siewca Mięty
Miętowy krzew
*****

Reputacja 0
Offline Offline

Płeć: Mężczyzna
Distro: Arch+e17
Wiadomości: 481



Zobacz profil
« Odpowiedz #28 : Listopad 17, 2011, 11:18:02 »

nie ma sprawy.. tylko popoludniu... w pracy nie mam linuxow na intelu...
Dodany: Listopad 17, 2011, 09:02:34
wynik:
glXCreateContextAttribsARB 0
« Ostatnia zmiana: Listopad 17, 2011, 09:02:34 wysłana przez Ulvhedin » Zapisane

MB:ASUS Barebone P2-M2A690G|ASUS 1215N|ASUS A8H
psrebniak
Miętowy liść
*

Reputacja 0
Offline Offline

Distro: Julia
Wiadomości: 25


Zobacz profil
« Odpowiedz #29 : Listopad 18, 2011, 08:43:18 »

Czyli już wiem o co chodzi.
To 0 to jest adres funkcji. Kompilator powinien zwrócić undefined reference ale sterownik(chyba) podał mu że taką funkcję posiada(chociaż 0 to nie posiada).
W każdym bądź razie dzięki za zainteresowanie.
Pozdrawiam
Zapisane
Strony: 1 [2]
Drukuj
Skocz do: