eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › [asm/c] optymalizacja elementarnego raytracera
Ilość wypowiedzi w tym wątku: 18

  • 1. Data: 2012-08-01 19:07:25
    Temat: [asm/c] optymalizacja elementarnego raytracera
    Od: " prof fir" <f...@g...pl>

    jakis rok czy pol roku temu trzasnalem kawalek kodu elementarnego
    raytracera

    https://dl.dropbox.com/u/42887985/re29.zip

    bylo to pisane ledwie dwa dni (chyba nawet niecale) i bylem zadowolony ze
    dobrze poszlo, ale kod jest rozbabrany i nie optymalizowany, ew teraz bym
    chcial pokombinowac czy da sie to przyoptymalizowac - najchetniej przepisac
    kluczowe kawalki na asma (sse2 bo mam tymczasowo wiekowa maszyne z p4),

    moze nie bede wklejac calek procedury bo jest rozbabrana ale opisze
    kluczowe kawalki, i ew ktos moglby najlepiej udzielic mi jakichs
    cennych uwag (najlepiej jak by to moglo wygladac konkretnie w asmie)
    - mozna by wtedy porozmawiac o optymalizacji a sa to ciekawe topiki

    jak to leci - mam cztery kulki i jedna plaszczyzne,
    dl akazdego punktu okna wyznaczam odleglosc do kazdej z kulek i
    plaszczyzny


    float distSphere01 = intersectRaySphere(&ray0,&rayV,&sphere01,15);
    float distSphere02 = intersectRaySphere(&ray0,&rayV,&sphere02,15);
    float distSphere03 = intersectRaySphere(&ray0,&rayV,&sphere03,15);

    float distSphere1 = intersectRaySphere(&ray0,&rayV,&sphere1,100);
    float distSphere2 = -1;// intersectRaySphere
    (&ray0,&rayV,&sphere2,1500);

    float distPlane = intersectionRayPlane(&ray0, &rayV, &vPlane,
    &planeNormal);




    inline float intersectionRayPlane(float3* rayOrigin,
    float3* rayDirection,
    float3* planeOrigin,
    float3* planeNormal)
    {
    static float3 D;

    D = sub(planeOrigin, rayOrigin);

    float a = dot(&D, planeNormal);
    float b = dot(rayDirection, planeNormal);

    if(b!=0)
    {
    return a/b;
    }
    else
    {
    return -1;
    }

    }

    inline float intersectRaySphere(float3* rO, float3* rV, float3* sO, float sR)
    {
    static float3 Q;

    Q = sub(sO,rO);
    float c = length(&Q);
    float v = dot(&Q,rV);
    float d = sR*sR - (c*c - v*v);

    // If there was no intersection, return -1
    if (d < 0.0) return (-1.0f);

    // Return the distance to the [first] intersecting point
    return (v - sqrt(d));
    }

    pozniej znajduje najblizsza z tych odleglosci licze normalna i
    w zaleznosci od iloczynu sklarnego zapalam punkt - ta druga czesc mozna
    by na razie pominac - pytanie jak przyoptymalizowac to co powyzej -
    ktos ma jakies konkretne rozwiazania, ?? moge przetestowac i zobacze
    czy bedzie speed up - sam tez moze pokombinuje ale sensowne merytoryczne
    uwagi mile widziane









    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 2. Data: 2012-08-01 21:59:09
    Temat: Re: [asm/c] optymalizacja elementarnego raytracera
    Od: " fir" <f...@W...gazeta.pl>

    przegladam np asma generowanego przez borlanda i mam tam cos takiego

    ; intersectionPoint = add(ray0, scalarMul(distPlane, rayV));
    ;
    mov ecx,dword ptr [esp+296]
    mov dword ptr [esp+488],ecx
    mov ecx,dword ptr [esp+300]
    mov dword ptr [esp+492],ecx
    mov ecx,dword ptr [esp+304]
    mov dword ptr [esp+496],ecx
    mov eax,dword ptr [esp+88]
    mov dword ptr [esp+112],eax
    fld dword ptr [esp+488]
    fmul dword ptr [esp+112]
    fstp dword ptr [esp+500]
    fld dword ptr [esp+492]
    fmul dword ptr [esp+112]
    fstp dword ptr [esp+504]
    fld dword ptr [esp+496]
    fmul dword ptr [esp+112]
    fstp dword ptr [esp+508]
    mov edx,dword ptr [esp+500]
    mov dword ptr [esp+512],edx
    mov edx,dword ptr [esp+504]
    mov dword ptr [esp+516],edx
    mov edx,dword ptr [esp+508]
    mov dword ptr [esp+520],edx
    mov ecx,dword ptr [esp+284]
    mov dword ptr [esp+524],ecx
    mov ecx,dword ptr [esp+288]
    mov dword ptr [esp+528],ecx
    mov ecx,dword ptr [esp+292]
    mov dword ptr [esp+532],ecx
    fld dword ptr [esp+524]
    fadd dword ptr [esp+512]
    fstp dword ptr [esp+536]
    fld dword ptr [esp+528]
    fadd dword ptr [esp+516]
    fstp dword ptr [esp+540]
    fld dword ptr [esp+532]
    fadd dword ptr [esp+520]
    fstp dword ptr [esp+544]
    mov eax,dword ptr [esp+536]
    mov dword ptr [esp+428],eax
    mov eax,dword ptr [esp+540]
    mov dword ptr [esp+432],eax
    mov eax,dword ptr [esp+544]
    mov dword ptr [esp+436],eax

    nie rozumiem blokow tych movow - skad to sie wzielo i co to jest, ?
    normalnie to wydawaloby sie ze wystarczylo by chyba cos takiego

    fld dword ptr [rayV.x]
    fmul dword ptr [dist]
    fstp dword ptr [m.x]
    fld dword ptr [rayV.y]
    fmul dword ptr [dist]
    fstp dword ptr [m.y]
    fld dword ptr [rayV.z]
    fmul dword ptr [dist]
    fstp dword ptr [m.z]

    fld dword ptr [m.x]
    fadd dword ptr [ray0.x]
    fstp dword ptr [out.x]
    fld dword ptr [m.y]
    fadd dword ptr [ray0.y]
    fstp dword ptr [out.y]
    fld dword ptr [m.z]
    fadd dword ptr [ray0.z]
    fstp dword ptr [out.z]

    albo jeszcze mniej :O jek wytlumaczyc te masywne bloki mov'ow ?



    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 3. Data: 2012-08-01 22:11:12
    Temat: Re: [asm/c] optymalizacja elementarnego raytracera
    Od: " M.M." <m...@W...gazeta.pl>

    fir <f...@W...gazeta.pl> napisał(a):

    > mov eax,dword ptr [esp+536]
    > mov dword ptr [esp+428],eax
    > mov eax,dword ptr [esp+540]
    > mov dword ptr [esp+432],eax
    > mov eax,dword ptr [esp+544]
    > mov dword ptr [esp+436],eax
    >
    > albo jeszcze mniej :O jek wytlumaczyc te masywne bloki mov'ow ?
    Chyba: kopiowanie 12 bajtów spod adresu esp+536 do adresu esp+428 za
    pośrednictwem młodszej cztero-bajtowej części rejestru EAX; 3 razy
    po 4 bajty. Dlaczego kompilator nie wyrównał do 8 bajtów i nie dał
    dwa razy na pełnym rejestrze eax to nie wiem.
    Pozdrawiam


    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 4. Data: 2012-08-01 22:16:27
    Temat: Re: [asm/c] optymalizacja elementarnego raytracera
    Od: "M.B." <c...@n...wp.pl>

    W dniu 2012-08-01 22:11, M.M. pisze:
    > fir <f...@W...gazeta.pl> napisał(a):
    >
    >> mov eax,dword ptr [esp+536]
    >> mov dword ptr [esp+428],eax
    >> mov eax,dword ptr [esp+540]
    >> mov dword ptr [esp+432],eax
    >> mov eax,dword ptr [esp+544]
    >> mov dword ptr [esp+436],eax
    >>
    >> albo jeszcze mniej :O jek wytlumaczyc te masywne bloki mov'ow ?
    > Chyba: kopiowanie 12 bajtów spod adresu esp+536 do adresu esp+428 za
    > pośrednictwem młodszej cztero-bajtowej części rejestru EAX; 3 razy
    > po 4 bajty. Dlaczego kompilator nie wyrównał do 8 bajtów i nie dał
    > dwa razy na pełnym rejestrze eax to nie wiem.
    > Pozdrawiam
    >
    >
    Bo EAX to rejestr 32-bitowy (w przeciwieństwie do RAX).


  • 5. Data: 2012-08-01 22:19:43
    Temat: Re: [asm/c] optymalizacja elementarnego raytracera
    Od: " f" <f...@W...gazeta.pl>

    M.M. <m...@W...gazeta.pl> napisał(a):

    > fir <f...@W...gazeta.pl> napisał(a):
    >
    > > mov eax,dword ptr [esp+536]
    > > mov dword ptr [esp+428],eax
    > > mov eax,dword ptr [esp+540]
    > > mov dword ptr [esp+432],eax
    > > mov eax,dword ptr [esp+544]
    > > mov dword ptr [esp+436],eax
    > >
    > > albo jeszcze mniej :O jek wytlumaczyc te masywne bloki mov'ow ?
    > Chyba: kopiowanie 12 bajtów spod adresu esp+536 do adresu esp+428 za
    > pośrednictwem młodszej cztero-bajtowej części rejestru EAX; 3 razy
    > po 4 bajty. Dlaczego kompilator nie wyrównał do 8 bajtów i nie dał
    > dwa razy na pełnym rejestrze eax to nie wiem.

    eax to 4 bajty - rax to 8 ale ja mam 32 bitowego kompa;
    wiem ze to kopiowania tylko pytanie dlaczego to ma miejsce bo
    raczej nie jest potrzebne, widac ze jakosci tego generowanego kodu
    daleko do optymalnej, a trzasnac takie procedurki dla fpu z reki
    reczej nie jest tak trudno (kiedys pisalem ale wiele lat temu)
    (choc wiadomo, ze ew trzeba moze bedzie debugowac itp jak trafia sie
    bledy a kompilator przy generowaniu asma nieoptymalizuje ale tez i
    beldow nie wtrynia)








    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 6. Data: 2012-08-01 22:22:59
    Temat: Re: [asm/c] optymalizacja elementarnego raytracera
    Od: " M.M." <m...@W...gazeta.pl>

    M.B. <c...@n...wp.pl> napisał(a):

    > W dniu 2012-08-01 22:11, M.M. pisze:
    > > fir <f...@W...gazeta.pl> napisał(a):
    > >
    > >> mov eax,dword ptr [esp+536]
    > >> mov dword ptr [esp+428],eax
    > >> mov eax,dword ptr [esp+540]
    > >> mov dword ptr [esp+432],eax
    > >> mov eax,dword ptr [esp+544]
    > >> mov dword ptr [esp+436],eax
    > >>
    > >> albo jeszcze mniej :O jek wytlumaczyc te masywne bloki mov'ow ?
    > > Chyba: kopiowanie 12 bajtów spod adresu esp+536 do adresu esp+428 za
    > > pośrednictwem młodszej cztero-bajtowej części rejestru EAX; 3 razy
    > > po 4 bajty. Dlaczego kompilator nie wyrównał do 8 bajtów i nie dał
    > > dwa razy na pełnym rejestrze eax to nie wiem.
    > > Pozdrawiam
    > >
    > >
    > Bo EAX to rejestr 32-bitowy (w przeciwieństwie do RAX).
    Racja, widocznie dawno nie programowałem w asemblerze :)
    Pozdrawiam



    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 7. Data: 2012-08-02 10:15:25
    Temat: Re: [asm/c] optymalizacja elementarnego raytracera
    Od: "AK" <n...@n...com>

    Użytkownik " fir" <f...@W...gazeta.pl> napisał:

    > jek wytlumaczyc te masywne bloki mov'ow ?

    Firze.
    Wiedziony umiejetnoscia prekognicji zadalem Ci drzewiej zadanie
    tyczace optymalizacji ramy wywolania procedury C .
    Jak zwykle "olales" to zadanie, a gdybys podszedl do tego powaznie
    jak profesjonalista (a nie jak rozkapryszony dzieciak i zwykly dres)
    to nie zadawalbys teraz w/w glupiego pytania.

    Ktos kto dzis uzywa BCC32 do "kodzienia" w (Twoim) zalozeniu majacego
    byc wysoce optymalnym (w sensie optymalnosci kodu assemblerowego)
    jest totanym palantem, dresem i betonem.
    Wiadomo albowiem od zawsze (15 lat min.) ze kompilatory Borlanda w tym
    zakresie _zatrzymaly sie kompletnie w rozwoju_.
    Oczywiscie mozna im znacznie pomoc (stad moje 'prekognicyjne' zadanie dla Ciebie),
    i o dziwo mozna to zrobic jeszcze w C. No ale widze, ze i w tym jezyku jestes jeszcze
    dresem i newbie, wiec moze udaj sie ze swoimi pytaniami na pl.comp.lang.c
    Tam wiecej takich jak Ty, wiec bedziecie mogli sobie spokojnie rozwazac "dobroc"
    generatora kodu i optymalizatora warstwy bajtkodu kochanego Borlanda.

    O wiele lepszy (dzis, bo dawniej - poczatek lat 90tych - bylo dokladnie
    odwrotnie) pod tym wzgledem jest VC/VC++, a najlepszym IMHO
    pod tym wzgledem kompilatorem byl nieodzalowany (dla mnie:)
    MicroWay C/C++, ale tez inny TopSpeed C/C++ czy chocby Watcom C/C++
    (na Watcoma uwaga, chyba zatrzymal sie na 32 but i dalej uze niczewo nie budiet).

    PS: Szanowny Firze. Kiedys (lata 90te) bedac na bezrobociu i chcac podciagnac
    swoj angielski udalem sie do Urzedu Pracy w Rzeszowie w celu uzysania mniejsca
    w darmowym kursie j.ang. Jakiez bylo moje "zdziwienie" gdy okazalo sie iz
    nauka angielskiego mi nie przysluguje gdyz.. "nie podnosi ona mych kwalifikacji
    zawodowych" jako programisty (po prostu nie figuruje w odpowiedniej tabelce
    z Ministerstwa Pracy).
    Spytalem wiec jakie kursy ew. podnosza te umiejetnosci/kwalifikacje zawodowe.
    Okazalo sie, ze np. toczenie w drewnie tudziez umiejetnosc zbrojenia konstrukcji
    betonowych. Ja zrezygnowalem z w/w i do dzisiaj zaluje :) Proponuje Ci firze
    na powaznie rozwazyc wyzej zasugerowane przekwalifikowanie
    (proponuje raczej toczenie w drewnie) bo jako programista C/ASM z takimi
    brakami wiedzy i doswiadczenia i tak skonczysz jako zbrojarz na jakiejs
    budowie w Niemczech :(

    AK


  • 8. Data: 2012-08-02 10:18:11
    Temat: Re: [asm/c] optymalizacja elementarnego raytracera
    Od: "f-i-r" <f...@W...gazeta.pl>

    fir <f...@W...gazeta.pl> napisał(a):

    > przegladam np asma generowanego przez borlanda i mam tam cos takiego
    >
    > ; intersectionPoint = add(ray0, scalarMul(distPlane, rayV));
    > ;
    > mov ecx,dword ptr [esp+296]
    > mov dword ptr [esp+488],ecx
    > mov ecx,dword ptr [esp+300]
    > mov dword ptr [esp+492],ecx
    > mov ecx,dword ptr [esp+304]
    > mov dword ptr [esp+496],ecx
    > mov eax,dword ptr [esp+88]
    > mov dword ptr [esp+112],eax
    > fld dword ptr [esp+488]
    > fmul dword ptr [esp+112]
    > fstp dword ptr [esp+500]
    > fld dword ptr [esp+492]
    > fmul dword ptr [esp+112]
    > fstp dword ptr [esp+504]
    > fld dword ptr [esp+496]
    > fmul dword ptr [esp+112]
    > fstp dword ptr [esp+508]
    > mov edx,dword ptr [esp+500]
    > mov dword ptr [esp+512],edx
    > mov edx,dword ptr [esp+504]
    > mov dword ptr [esp+516],edx
    > mov edx,dword ptr [esp+508]
    > mov dword ptr [esp+520],edx
    > mov ecx,dword ptr [esp+284]
    > mov dword ptr [esp+524],ecx
    > mov ecx,dword ptr [esp+288]
    > mov dword ptr [esp+528],ecx
    > mov ecx,dword ptr [esp+292]
    > mov dword ptr [esp+532],ecx
    > fld dword ptr [esp+524]
    > fadd dword ptr [esp+512]
    > fstp dword ptr [esp+536]
    > fld dword ptr [esp+528]
    > fadd dword ptr [esp+516]
    > fstp dword ptr [esp+540]
    > fld dword ptr [esp+532]
    > fadd dword ptr [esp+520]
    > fstp dword ptr [esp+544]
    > mov eax,dword ptr [esp+536]
    > mov dword ptr [esp+428],eax
    > mov eax,dword ptr [esp+540]
    > mov dword ptr [esp+432],eax
    > mov eax,dword ptr [esp+544]
    > mov dword ptr [esp+436],eax
    >
    > nie rozumiem blokow tych movow - skad to sie wzielo i co to jest, ?
    > normalnie to wydawaloby sie ze wystarczylo by chyba cos takiego
    >
    > fld dword ptr [rayV.x]
    > fmul dword ptr [dist]
    > fstp dword ptr [m.x]
    > fld dword ptr [rayV.y]
    > fmul dword ptr [dist]
    > fstp dword ptr [m.y]
    > fld dword ptr [rayV.z]
    > fmul dword ptr [dist]
    > fstp dword ptr [m.z]
    >
    > fld dword ptr [m.x]
    > fadd dword ptr [ray0.x]
    > fstp dword ptr [out.x]
    > fld dword ptr [m.y]
    > fadd dword ptr [ray0.y]
    > fstp dword ptr [out.y]
    > fld dword ptr [m.z]
    > fadd dword ptr [ray0.z]
    > fstp dword ptr [out.z]
    >
    > albo jeszcze mniej :O jek wytlumaczyc te masywne bloki mov'ow ?
    >
    >
    to chyba dlatego, ze genrator faktycznie rozwija funkcje inline ale
    nie klopocze sie by scalic output jednej do inputu drugiej tylko
    robi na odzielnych i w srodku kopiuje ;-)

    ale pozatym generuje w miare poprawny chyba kod np dla

    inline float intersectRaySphere(float3* rO, float3* rV, float3* sO, float sR)
    {
    static float3 Q;

    Q = sub(sO,rO);
    float c = length(&Q);
    float v = dot(&Q,rV);
    float d = sR*sR - (c*c - v*v);

    // If there was no intersection, return -1
    if (d < 0.0) return (-1.0f);

    // Return the distance to the [first] intersecting point
    return (v - sqrt(d));
    }


    _TEXT segment dword public use32 'CODE'
    @intersectRaySphere$qp6float3t1t1f segment virtual
    align 2
    @@intersectRaySphere$qp6float3t1t1f proc near
    ?live16492@0:
    @1533:
    push ebp
    mov ebp,esp
    add esp,-24
    push ebx
    push esi
    push edi
    ?live16492@16: ; EDI = rV
    add esp,-8
    mov esi,dword ptr [ebp+16]
    mov ebx,dword ptr [ebp+8]
    ?live16492@48: ;
    mov edi,dword ptr [ebp+12]
    ?live16492@64: ; EDI = rV
    fld dword ptr [esi]
    fsub dword ptr [ebx]
    fstp dword ptr [ebp-24]
    fld dword ptr [esi+4]
    fsub dword ptr [ebx+4]
    fstp dword ptr [ebp-20]
    fld dword ptr [esi+8]
    fsub dword ptr [ebx+8]
    fstp dword ptr [ebp-16]
    mov eax,dword ptr [ebp-24]
    mov dword ptr [$afdngfia],eax
    mov eax,dword ptr [ebp-20]
    mov dword ptr [$afdngfia+4],eax
    mov eax,dword ptr [ebp-16]
    mov dword ptr [$afdngfia+8],eax
    fld dword ptr [$afdngfia]
    fmul dword ptr [$afdngfia]
    fld dword ptr [$afdngfia+4]
    fmul dword ptr [$afdngfia+4]
    faddp st(1),st
    fld dword ptr [$afdngfia+8]
    fmul dword ptr [$afdngfia+8]
    faddp st(1),st
    fstp qword ptr [esp]
    call @_sqrt
    fstp dword ptr [ebp-4]
    fld dword ptr [$afdngfia]
    fmul dword ptr [edi]
    add esp,8
    fld dword ptr [$afdngfia+4]
    fmul dword ptr [edi+4]
    faddp st(1),st
    fld dword ptr [$afdngfia+8]
    fmul dword ptr [edi+8]
    faddp st(1),st
    fstp dword ptr [ebp-8]
    ?live16492@144: ;
    fld dword ptr [ebp-4]
    fmul dword ptr [ebp-4]
    fld dword ptr [ebp-8]
    fmul dword ptr [ebp-8]
    fsubp st(1),st
    fld dword ptr [ebp+20]
    fmul dword ptr [ebp+20]
    fsubrp st(1),st
    fstp dword ptr [ebp-12]
    fld dword ptr [ebp-12]
    fcomp dword ptr [@1535]
    fnstsw ax
    sahf
    jae short @1534
    fld dword ptr [@1535+4]
    jmp short @1536
    @1534:
    add esp,-8
    fld dword ptr [ebp-12]
    fstp qword ptr [esp]
    call @_sqrt
    fsubr dword ptr [ebp-8]
    add esp,8
    @1537:
    @1536:
    pop edi
    pop esi
    pop ebx
    mov esp,ebp
    pop ebp
    ret
    align 4
    @1535:
    db 0,0,0,0,0,0,128,191
    @@intersectRaySphere$qp6float3t1t1f endp
    @intersectRaySphere$qp6float3t1t1f ends


    chyba nawet troche przyoptymalizowal uzywajac ebx esi i edi
    zamiast odwolan do ramu,

    z reki pewnie moglbym sie starac wlasnie powywalac ile sie da
    odwolan do ramu na rzecz rejestrow i stacka fpu - ale musialbym
    troche teraz doczytac o pisaniu asma na fpu, bo pozapominalem, nie
    kojarze np jakich rejestrow mozna uzyc zamiast odwolan do ramu -







    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 9. Data: 2012-08-02 11:16:08
    Temat: Re: [asm/c] optymalizacja elementarnego raytracera
    Od: " f-i-r" <f...@W...gazeta.pl>

    AK <n...@n...com> napisał(a):

    > Użytkownik " fir" <f...@W...gazeta.pl> napisał:
    >
    > > jek wytlumaczyc te masywne bloki mov'ow ?
    >
    > Firze.
    > Wiedziony umiejetnoscia prekognicji zadalem Ci drzewiej zadanie
    > tyczace optymalizacji ramy wywolania procedury C .
    > Jak zwykle "olales" to zadanie, a gdybys podszedl do tego powaznie
    > jak profesjonalista (a nie jak rozkapryszony dzieciak i zwykly dres)
    > to nie zadawalbys teraz w/w glupiego pytania.
    >
    > Ktos kto dzis uzywa BCC32 do "kodzienia" w (Twoim) zalozeniu majacego
    > byc wysoce optymalnym (w sensie optymalnosci kodu assemblerowego)
    > jest totanym palantem, dresem i betonem.
    > Wiadomo albowiem od zawsze (15 lat min.) ze kompilatory Borlanda w tym
    > zakresie _zatrzymaly sie kompletnie w rozwoju_.
    > Oczywiscie mozna im znacznie pomoc (stad moje 'prekognicyjne' zadanie dla
    Ciebi
    > e),
    > i o dziwo mozna to zrobic jeszcze w C. No ale widze, ze i w tym jezyku
    jestes j
    > eszcze
    > dresem i newbie, wiec moze udaj sie ze swoimi pytaniami na pl.comp.lang.c
    > Tam wiecej takich jak Ty, wiec bedziecie mogli sobie spokojnie rozwazac
    "dobroc
    > "
    > generatora kodu i optymalizatora warstwy bajtkodu kochanego Borlanda.
    >
    > O wiele lepszy (dzis, bo dawniej - poczatek lat 90tych - bylo dokladnie
    > odwrotnie) pod tym wzgledem jest VC/VC++, a najlepszym IMHO
    > pod tym wzgledem kompilatorem byl nieodzalowany (dla mnie:)
    > MicroWay C/C++, ale tez inny TopSpeed C/C++ czy chocby Watcom C/C++
    > (na Watcoma uwaga, chyba zatrzymal sie na 32 but i dalej uze niczewo nie
    budiet
    > ).
    >
    > PS: Szanowny Firze. Kiedys (lata 90te) bedac na bezrobociu i chcac
    podciagnac
    > swoj angielski udalem sie do Urzedu Pracy w Rzeszowie w celu uzysania
    mnie
    > jsca
    > w darmowym kursie j.ang. Jakiez bylo moje "zdziwienie" gdy okazalo sie
    iz
    > nauka angielskiego mi nie przysluguje gdyz.. "nie podnosi ona mych
    kwalifi
    > kacji
    > zawodowych" jako programisty (po prostu nie figuruje w odpowiedniej
    tabelc
    > e
    > z Ministerstwa Pracy).
    > Spytalem wiec jakie kursy ew. podnosza te umiejetnosci/kwalifikacje
    zawodow
    > e.
    > Okazalo sie, ze np. toczenie w drewnie tudziez umiejetnosc zbrojenia
    konst
    > rukcji
    > betonowych. Ja zrezygnowalem z w/w i do dzisiaj zaluje :) Proponuje Ci
    firz
    > e
    > na powaznie rozwazyc wyzej zasugerowane przekwalifikowanie
    > (proponuje raczej toczenie w drewnie) bo jako programista C/ASM z takimi
    > brakami wiedzy i doswiadczenia i tak skonczysz jako zbrojarz na jakiejs
    > budowie w Niemczech :(
    >
    > AK
    >

    hehe, tn poziom glabienia mnie przygnebia i na pewno nie pogadamy
    na takim poziomie ;) nie umiesz powiedzec nic nt (tematem jest

    _optymalizacja procedury_

    ) to sorrki ;) smieszne ze mi sie zarzuca
    smiecenie gdy spojrzcie na siebie tego typu przymulaste blablanie
    _all the time_ i nic na temat (czasem sie odnosze bo nie lubie
    przymulastego wrazenia (i te moje komentarze sa czy tez były somewhat
    wymuszone owym zagłąbianiem wlasnie) - ale normalnie to interesuja
    mnie topiki, poprawki c, optymalizacje, paradygmat strukturalny,
    ogl) nie podoba ci sie ze lubie sprawdzic cos pod bcc32?: zbij zone,
    skop psa, albo spij sie u cioci na imininach ale czemu do mnie takie
    przymule teksty :/




    napisze to wyrazniej

    rozmowy typu

    1. poprawki c, optymalizacje, paradygmat strukturalny, ogl

    OK

    2. nie moge wytrzymac i musze skopac psa, wstawie rozmowke typu
    z czerwonym pyskiem po kielichu u cioci na imineianach (np o
    monterach w niemczech)

    SORRY

    teraz spojrzcie ile pisze ja na temat 1 i o czym pisze co bardziej
    przymulasta czesc tutejszych 'grupowiczow' (czesc z nich na 1 nie potrafi
    powiedziec praktycznie nic, ( poza sugerowaniem ze jestem glupszy od
    nich ;-) - co juz nalezy do 2)

    Ostatnio odnosilem sie duzo do tego głabienia bo staralem sie dac odpór
    tej głupocie - i uwazam ze nawet czesciowo mi sie to udalo, tj glupi nie
    zmadrzeli nic a nic, ale przynajmniej zyskalem pewne jasnosc w
    pewnych sprawach



    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 10. Data: 2012-08-02 12:24:25
    Temat: Re: [asm/c] optymalizacja elementarnego raytracera
    Od: "R.e.m.e.K" <g...@d...null>

    Dnia Thu, 2 Aug 2012 09:16:08 +0000 (UTC), f-i-r napisał(a):

    >> Firze.
    >> Wiedziony umiejetnoscia prekognicji zadalem Ci drzewiej zadanie
    >> tyczace optymalizacji ramy wywolania procedury C .
    >> Jak zwykle "olales" to zadanie, a gdybys podszedl do tego powaznie
    >> jak profesjonalista (a nie jak rozkapryszony dzieciak i zwykly dres)
    >> to nie zadawalbys teraz w/w glupiego pytania.
    >
    > hehe, tn poziom glabienia mnie przygnebia i na pewno nie pogadamy
    > na takim poziomie ;) nie umiesz powiedzec nic nt (tematem jest
    >
    > _optymalizacja procedury_
    >
    > ) to sorrki ;) smieszne ze mi sie zarzuca
    > smiecenie gdy spojrzcie na siebie tego typu przymulaste blablanie

    A zadales sobie przyglupie trud przeczytania tego co AK do Ciebie napisal?
    Wystarczy tylko pierwszy akapit, powyzej Ci go zacytowalem.

    Dasz rade to zrobic?
    Potrafisz?
    No?

    Wytez swoj zmeczony "mysleniem" umysl i pokaz, ze stac Cie na to!


    --
    pozdro
    R.e.m.e.K

strony : [ 1 ] . 2


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: