Senin, 25 Juli 2011

Microsoft DirectX 11


Berikut merupakan artikel yang membahas lebih jauh tentang DirectX11 (DX11).Selengkapnya semoga dapat menjawab beberapa pertanyaan yang muncul pada forum ini mengenai kompatibilitas DX 11 yang berbeda dengan DX sebelumnya (DX 11 backward kompatibel dengn DX 10) serta mengenai beda multi thread pada DX 10 dan DX11. 
Mengenal DirectX 11 lebih jauh
Pembukaan
Kita senantiasa mengharapkan evolusi grafis 3d terus berlanjut hingga semakin mendekati kenyataan, baik pada sistem komputer high end maupun low end . Kemajuan dunia 3d didorong oleh berbagai faktor, diantaranya performa murni hardware dan kemajuan teknis yang brilian agar dapat menggambarkan apa yang kita lihat dengan lebih baik. Namun ada sisi lain dibalik hardware maupun peranan developer, yaitu API (Application Programming Interface) dari grafik itu sendiri. Berbeda dengan CPU, hardware grafis (GPU) tidak memiliki instruksi umum yang dapat dibangun guna menjembatani antara hardware itu sendiri dengan softwarenya. Demi mengerahkan potensi hardware kepada publik, diperlukan antar muka umum yang dapat bekerja tanpa memperdulikan GPU yang digunakan pada sebuah sistem komputer. Selanjutnya tergantung pada desainer hardware grafis untuk menangani kode yang dihasilkan oleh API dan menerjemahkannya menjadi sesuatu yang dapat didayagunakan oleh chip grafis mereka. Keberadaan API sangatlah penting karena menjadi satu- satunya titik hubung developer(software) dengan hardware tersebut. API tersebut menentukan seberapa besar keleluasaan yang diperoleh dalam mendayagunakan hardware dalam rangka membangun dunia grafis 3d performa tinggi secara realtime. Beberapa kunci pekerjaan yang dilakukan melalui API grafis adalah mengambil deskripsi dari objek 3D dalam dunia 3d, mengrimkan objek tersebut dan sumber daya lainnya menuju hardware, kemudian “mengatakan” kepada hardware tentang apa yang harus dilakukan terhadap objek tersebut. Terdapat sekumpulan Langkah demi langkah proses lanjutan yang umumnya sering kita sebut pipeline. Pipeline API grafis memiliki tingkatan- tingkatan dimana beberapa pekerjaan yang berbeda dilakukan. Berikut ini gambaran umum struktur sebuah pipeline grafis 3d : Pertama- tama data vertex (info mengenai posisi titik sudut sebuah segitiga) dibawa masuk dan diproses. Barulah kemudian bangun tersebut dapat dimanipulasi dan diproses ulang lebih jauh jika diperlukan. Setelah itu, objek 3d dipecah dari bangun 3d dengan memproyeksikannya ke dalam fragmen 2d yang disebut pixel(langkah ini dikenal dengan nama rasterisasi), kemudian pixel ini masing- masing diproses dengan mencari informasi tekstur serta mengunakan teknik pencahayaan dan seterusnya. Selesai diproses, pixel ditampilkan di layar. Dan demikian sekilas gambaran tentang cara kerja grafis 3d. Selama 12 tahun terakhir,kita telah menyaksikan pembuat hardware grafis 3d yang terus mendorong dua API yang dominan yaitu OPEN GL(OGL) dan DIRECT X(DX)
Namun untuk saat ini kita akan terfokus pada Direct X, API grafis milik microsoft yang lebih sering dipergunakan dalam sebuah game engine dibandingkan openGL, sebagian besar dikarenakan DX bergerak jauh lebih cepat dan menciptakan serangkaian fitur serta
fleksibilitas yang menjadi standar baru baik pada hardware maupun software DX itu sendiri. Hal ini menjadikan tiap versi DX yang
hadir menarik untuk dibahas mengingat DX senantiasa menentukan kamampuan hardware di masa depan dan menyuguhkan tool
yang cukup teruji bagi para developer. Versi DX terbaru adalah cahaya bagi masa depan dunia grafis. Saat ini banyak tersedia dan
banyak dikembangkan game yang menggunakan DX 9 an 10, sementara DX 11 sendiri telah mengintip dari balik cakrawala.
Seperti biasa Microsoft akan menyesuaikan peluncuran DX 11 dengan peluncuran hardware yang mendukungnya. Seperti sebelumnya (DX 10 dengan cista), DX 11 akan dirilis bersama dengan windows 7 pada akhir tahun ini. 
Kali ini Microsoft sedikit lebih agresif dengan jadwal peluncuran windows 7 untuk membayar penolakan terhadap vista, sehingga kelihatannya Microsoft tidak akan melakukan penundaan lagi. Terdapat jarak sedikitnya 4 tahun antara peluncuran DX 9 dengan DX 10. Bersamaan dengan keluarnya vista pada jan 2007, DX 10 hanya menjadi pilihan kedua dan dapat diduga penggantinya akan segera keluar. Transisi yang sangat cepat ini akan menguntungkan bagi pengadopsian DX 11 karena DX 10 sendiri masih belum terlalu merakyat, buktinya hingga kini banyak game yang masih menggunakan DX9 saja. Tetapi kita lihat terlebih dulu lebih dekat tentang bahasan kita kali ini sebelum melangkah lebih jauh. 
MEMPERKENALKAN DX 11: 
FITUR DAN PIPELINE.
Sedikit tentang DX 10.
Kita semua ingat betapa sangat memuakkannya vista. Diantara penyebab kurang didukungnya DX10 ada pada Vista itu sendiri, kurangnya dukungan driver, masalah waktu pemasaran dan rintangan lain yang membuat para developer menjauhi fitur- fitur baru nan keren yang dibawa DX10.
Temui DX11
Lebih keren dan lebih hot dari kakaknya. Banyak peningkatan yang tersembunyi berarti performa yang lebih tinggi bagi fitur yang ada namun tidak dipergunakan pada DX10. Perubahan besar pada pipeline menandai langkah revolusioner dalam bidang hardware grafis dan kemampuan software. Tesselation (yang terdiri atas hull shader, tesselator plus domain shader) dan Compute Shader me upakan perkembangan besar yang dapat lebih jauh membimbing para pengembang untuk menutup jarak antara dunia nyata dan maya. Fitur- fitur ini pada awalnya banyak mendapat tekanan, namun kunci dari pengadopsian (dan eksploitasi DX11) ada pada elemen-elemen yang lebih mendasar. Seiring dengan perubahan pipeline , kita bisa melihat banyak tweak dan peningkatan. DX 11 sebenarnya adalah “huruf besar” dari DX 10.1, artinya bahwa keseluruhan fitur DX 10.1 terangkum tanpa perubahan dalam DX 11. Dengan fakta sederhana ini maka hardware DX 11 akan mencakup seluruh perubahan yang diperlukan untuk menjadi DX 10.1 compliant (yang saat ini hanya dimiliki AMD dengan seri ATI radeon 3000 dan 4000). Sebagai tambahan atas peningkatan kecil ini, akan kita lihat lebih jauh perluasan berikut: Alih- alih perubahan pada pipeline mengijinkan developer untuk menulis banyak program guna menyelesaikan macam -macam task, perubahan yang lebih mendasar ini mengijinkan program- program tersebut menjadi lebih kompleks, berkualitas tinggi, dan mungkin berperforma lebih tinggi. Dibalik semua ini, Microsoft juga telah membantu pemrograman parallel sedikit lebih mudah bagi game developer. 
Dari Evolusi Menuju Ekspansi dan Multi Threading 
Update DX SDK bulan November adalah yang pertama mencakup beberapa fitur DX 11 untuk diujicoba oleh para developer. Memang hardware DX 11 masih belum tersedia , namun fitur tersebut akan berjalan pada setelan dan hardware DX 10 yang ada saat ini pada Win Vista dan Win 7 beta(ketika windows7 belum diluncurkan). Apabila digabungkan dengan fakta telah diselesaikannya spesifikasi Open CL oleh Khronos sebulan lalu, hal ini telah menandai dua perkembangan besar dalam membuka jalan menuju general purpose computing pada GPU. Harus diakui bahwa Open CL dan DX11 adalah batu loncatan bagi sejarah komputasi di masa depan, meski tentu saja DX 11 jauh lebih unggul dalam aplikasi 3d realtime, sedangkan open CL sendiri ditujukan untuk pemrograman data paralel secara umum (pada banyak CPU dan GPU) selain daripada grafis itu sendiri.
Masih banyak hal lain pada DX 11 selain dari compute shader itu sendiri. Hal lain yang paling menarik adalah pengenalan DX 11 akan membawa keuntungan bagi pemilik hardware DX 10 dan DX 10.1 saat ini, asalkan AMD dan NVIDIA senantiasa memberikan dukungan driver yang tepat. Banyak aspek baru pada DX 11 yang kelihatannya mengindikasikan adanya kesiapan untuk lebih cepat diadaptasi, khususnya apabila Win 7 yang sudah diluncurkan. Terdapat peningkatan pada HLSL(High Level Shader Language) yang akan jadi lebih menarik bagi developer, fakta bahwa DX 10.1 adalah huruf kecil bagi DX 11memiliki dampak transisi yang baik, dan perubahan- perubahan yang membuat pemrograman paralel lebih mudah akan sangat membantu para developer beradaptasi dengan API tersebut lebih cepat. Tidak akan ada lagi keluhan tentang sedikitnya user yang mengupgrade OSnya karena DX 11 akan tersedia pula untuk Vista, dan Win 7 akan menginspirasi gamer Win XP untuk mengupgrade OS-nya, yang artinya akan memperluas pasar para developer kelak.
Pada dasarnya DX 11 lah yang sebenarnya akan membawa fitur – fitur pada dx10 sembari membantu developer melakukan trransisi API lebih cepat dari sebelumnya, sedangkan DX 10 sendiri menjanjikan fitur- fitur yang akan membawa revolusi pada keindahan visual dan teknik rendering. Kita mungkin tidak akan melihat teknik yang sepenuhnya memanfaatkan fitur eksklusif pada DX 11 dalam waktu dekat ini, namun penyesuaian dengan API baru itu sendiri akan berjalan beriringan untuk mengilhami kemajuan pesat dalam grafis 3d realtime.
Dari DX 6 ke DX 9,Microsoft secara berkesinambungan mengubah API pemrograman mereka dari “kendaraan” berfungsi tetap untuk setelan keadaan dan pergerakan struktur data di sekitarnya menuju ke lingkungan yang lebih programmable yang mengijinkan pengendalian hardware grafis sepenuhnya . Langkah dari DX 9 menuju DX 10 merupakan kejutan akhir dari cara lama tersebut, membuka dan memperluas kemampuan pemrograman Dx 9 untuk menambahkan kedalaman dan fleksibilitas yang disediakan oleh hardware baru. Dengan transisi ke DX 10 Microsoft juga mema sakan sebuah pergeseran dalam model driver untuk meninggalkan sisasisa kejayaan dan mencoba meningkatkan stabilitas dan fleksibilitas pada saat menggunakan hardware DX 10. Tetapi berbeda dengan DX 11, Microsoft telah membangun DX 11 sebagai “huruf besar” dari DX 10/10.1 yang telah menyediakan beberapa kemungkinan yang bisa membuat penasaran daripada hanya sekedar merekonstruksi ulang DX 9 agar lebih mudah diprogram.
Di sisi lain, DX11 akan mampu berjalan pada level lebih rendah. Meskipun tentu saja keseluruhan fitur- fitur DX 11 tidak akan bisa diterapkan, namun ini berarti developer bisa tetap menyasar hardware DX 10 dan 11 tanpa memerlukan implementasi pemrograman yang terpisah karena memang keduanya sama tetapi DX11 lebih menyasar pada fungsioalitas. Kode yang berbeda memang diperlukan jika fitur yang digunakan hanya untuk DX 11 (seperti tesselator atau compute shader). Keunggulan untuk berjalan pada hardware dengan spesifikasi rendah akan menjadi sangat penting dalam menentukan seberapa cepat proses transisi dari DX 10 ke DX11 berlangsung. Berdasarkan kenyataan lambatnya pergerakan untuk meninggalkan DX 9 (baik pada developer maupun konsumen sendiri), keluarnya Win 7, dan lambatnya peralihan ke Win Vista, dapat kita simpulkan bahwa DX 10 tak lebih hanyalah sebuah API peralihan daripada sebuah pergeseran paradigma seperti yang digadang- 

gadang Microsoft. Tentu saja Microsoft akan terus mendorong para developer untuk berpindah ke DX 11 dengan meyakinkan bahwa jalur cepat untuk menuju hal tersebut hanyalah dengan mulai menerapkan kode DX 10.1 sekarang juga. Karena DX 11 adalah “huruf besar” dari DX 10 hal ini bisa saja benar , namun usaha para developer akan lebih baik jika dipakai untuk menghabiskan sebagian besar waktunya pada jalur DX 9 berkualitas tinggi dengan sedikit pemakaian dx 10 sementara menyimpan pergeseran teknis utamanya yang hanya dimungkinkan dengan game- game Dx 10 untuk game yang menyasar rentang waktu dan hardware DX 11. Kita semua berharap pegeseran ke dx 11 secepatnya karena keunggulan- keungulan yang dibawa bahkan untuk hardware DX 10 itu sendiri. Keunggulan itu antara lain adalah multi threading. DX 11 menambahkan dukungan multi threading yang mengijinkan aplikasi untuk menciptakan resource atau menangani keadaan dan mengeluarkan perintah secara bersamaan hanya dengan beberapa threads saja. Hal ini tentunya tidak akan mempercepat subsystem grafis secara signifikan (terutama jika sistem sudah dibatasi oleh GPU), namun hal ini akan meningkatkan kemampuan thread yang luar biasa besar dari sebuah game dengan lebih mudah dan mengambil keuntungan dari semakin meningkatnya jumlah core CPU pada komputer desktop. Sistem dengan 8 atau 16 logika prosesor akan segera datang, kita membutuhkan developer yang mampu mendorong banyak thread yang saat ini mampu didayagunakan dengan baik pada sistem dengan 2 core. Saat ini keuntungan mengembangkan game secara signifikan yang dibantu dengan ketersediaan lebih dari 2 core sangatlah lemah. Sangatlah sulit untuk menyediakan cukup paralelisme pada sistem dengan 4 core atau lebih pada kebanyakan game. Namun menciptakan resource dengan kreasi paralel sederhana dan menampilkan daftarnya menggunakan banyak thread dapat membuka kesempatan untuk memparalelkan kode game yang hingga sekarang masih single thread. Daripada membuat sebuah thread untuk menangani seluruh perubahan keadaan DX dan melakukan draw call (dengan kata lain banyak thread yang tersinkronisasi dan bekerja dengan baik yang saling berbagi tanggung jawab) ,developer dapat menciptakan thread untuk menangani tipe atau grup dari suatu objek atau bagian sebuah world dengan lebih alami yang mampu membuka jalan ke masa depan dimana setiap objek atau entitas dapat ditangani oleh threadnya masing- masing (yang sangat diperlukan untuk memberikan keuntungan performa pada saat kita telah sampai pada masa ratusan logika core )
Kenyataan bahwa Microsoft telah merrencanakan dukungan multi-thread untuk Dx11 yang berjalan pada hardware Dx 10 adalah sebuah bonus besar. Salah satu halangan adalah AMD dan NVIDIA perlu untuk sedikit mengutak atik driver mereka untuk sistem DX 10 saat ini agar dapat bekerja sepenuhnya (yang sebenarnya akan bekerja namun tidak sebaik tanpa perubahan driver). Tentu saja kita berharap NVIDIA dan AMD (dengan perusahaan CPUnya) akan tertarik mewujudkan hal ini. Dan sekali lagi hal ini adalah insentif utama para game developer untuk menyasar DX 11 bahkan sebelum hardwarenya sendiri banyak tersedia. Jika saja Microsoft akan (dan mampu) mem-back port Dx 11 ke Win XP, tetap saja tidak ada alasan bagi para game developer untuk tetap mempertahankan kode mereka saat ini. Saat kita dengan hati terbuka menyambut baik ide untuk mempertahankan kebutuhan hardware minimum bagi OS baru, menghilangkan dukungan untuk OS lama adalah hal yang tidak akan didukung para gamer. Jika Win 7 menjadi Vista lain yang lebih mahal, kita akan tetap menggunakan Dx 9, khususnya untuk game casual dan mainstream yang biasanya memang agak tertinggal dalam hal teknologi(juga untuk konsol yang masih memakai hardware DX 9 untuk beberapa tahun ke depan).
LEBIH JAUH LAGI TENTANG DX 11 
DAN ENGINE GAME MULTI THREADED
Dengan mengesampingkan fakta bahwa pemrograman multi threaded telah ada sepuluh tahun terakhir, kebanyakan programmer tidak terfokus pada pemrograman paralel hingga hadirnya CPU multi core seperti sekarang. Kebanyakan kode program ditulis single thread, oleh karena menambah performa melalui pemrograman paralel bisa teramat sulit dan tidak selalu terlihat apa kelebihannya dibandingkan sungle thread. Hukum Ahmdal tetap berlaku yaitu kecepatan dari paralelisasi dibatasi oleh prosentase kode yang wajib berurutan,bahkan bagi para programmer berpengalaman sekalipun.
Dalam pengembangan sebuah game, saat ini rendering merupakan salah satu task yang “wajib” untuk berurutan tersebut. DX 10
sendiri tidak disiapkan untuk secara tepat menangani banyak thread dan melimpahkannya ke GPU. Hal ini bukan berarti paralelisasi dari proses render tidak dapat dilakukan, bisa saja dilakukan namun akan sedikit mengorbankan kecepatan karena dibutuhkan teknik sinkronisasi atau manajemen thread yang harus diterapkan untuk senantiasa memastikan tidak ada bagian yang terlewat. Semua hal ini membatasi keunggulan dari proses paralelisasi dan menghalangi para programer untuk berusaha lebih keras lagi. Lagipula jauh lebih baik jika mengalokasikan lebih banyak tenaga untuk membenahi performa secara signifikan daripada untuk hal tersebut (sinkronisasi dan sebagainya).
Tidak menjadi masalah apa yang sudah dilakukan, beberapa hal dalam proses render tetap wajib untuk berurutan. Program, tekstur dan resource harus di load lebih dahulu;geometry ditangani sebelum pixel diproses; sementara calling program dieksekusi
bersamaan dengan sebuah state tertentu yang harus senantiasa aktif dan tidak berubah hingga selesai. Bahkan dalam sebuah mesin paralel yang luar biasa besar,keterurutan harus tetap dijaga meskipn bukan yang utama.
Microsoft telah membuat banyak game developer lebih mudah dalam mengelola kode game dan kode rendering dengan cara membuat banyak hal yang thread safe melalui sebuah perangkat interface tambahan yang dilengkapi banyak konteks serta membuat banyak sekali sinkronisasi yang mana telah melampaui tanggung jawab dari API atau driver grafis itu sendiri. Hal ini akan bekerja pula pada hardware DX 10 yang berjalan pada DX 11 dengan terpangkasnya sedikit performa serta kelebihan fitur- fitur DX 11 secara hardware. Namun kemampuan dasar untuk menulis kode secara berbeda akan menjadi investasi jauh ke depan bagi game dev agar lebih terbiasa dengan proses paralelisasi yang lebih baik. Sekarang kita lihat beberapa tools yang tersedia pada DX11
Tool pertama adalah free threaded asynchronous resource loading. Tool ini memampukan para programer untuk mengupload program, tekstur, keadaan objek dan keseluruhan resource pada cara yang lebih thread safe dan bersamaan dengan proses rendering jika diinginkan. Ini bukan berarti keseluruhan hal akan dijalankan bersamaan dengan proses rendering karena driver akan mengatur waktu pengiriman dan apa yang dikirimkan menuju GPU berdasarkan prioritas, ini artinya developer tidak perlu lagi berpikir tentang sinkronisasi atau memprioritaskan secara manual proses loading tiap resource yang ada. Banyak Thread dapat mulai meload resource apapun setiap saat dibutuhkan. Fakta bahwa hal ini dapat dilakukan bersamaan dengan proses render berarti akan terjadi peningkatan performa pada game yang melakukan data streaming untuk merender dunia yang sangat luas(GTA misalnya). Perangkat D3D sendiri akan dibagi menjadi tiga interface berbeda untuk memungkinkan hal seperti di atas terjadi, yaitu bagian Device, Immediate Context(IC), dan Deferred Context(DC). Penciptaan resource dilakukan melalui device. IC merupakan antar muka untuk setelan keadaan(state )perangkat, draw calls dan query. Sedangkan DC sendiri adalah antarmuka lain yang dipakai untuk banyak keadaan (state) dan banyak draw calls dalam satu program yang dapat pula digunakan untuk antar muka tiap thread (DC sendiri masuk dalam thread unsafe. Berbeda dengan IC dan device yang hanya bisa menangani satu keadaan dan satu draw calls saja. Keunggulan DX 11 dalam multi threaded sendiri berasal dari DC dan penciptaan resource bebas melalui perangkat yang tersedia tersebut. Banyak thread mengirimkan state(keadaan) dan draw calls menuju DC yang di dalamnya terdapat daftar tampilan (display list) yang pada akhirnya akan dieksekusi oleh IC. Game masih tetap membutuhkan sebuah thread untuk melakukan proses render, dan thread ini akan menggunakan IC untuk mengeksekusi state (keadaan) dan draw calls serta untuk “mengkonsumsi” daftar tampilan yang dihasilkan oleh DC. Dengan demikian, tujuan akhir dari state dan draw calls ada pada IC, namun sinkronisasi ditangani oleh API dan display driver sehingga thread parallel bisa jauh lebih berperan pada proses rendering. Beberapa batasan pada DC adalah
ketidakmampuan untuk melakukan query pada device dan ketidakmampuan membaca atau mendownload apapun dari GPU.
Hasil akhirnya adalah di masa depan semua hal akan lebih paralel friendly. Kita akan membutuhkan semua pertolongan yang ada pada saat mencoba mengambil keuntungan dengan paralelisme seiring dengan makin populernya dual dan quad core CPU seme tara 8 dan 16 core CPU sendiri sudah menanti dibalik pintu.
Tentang Compute Shader dan Open GL/OpenCL
Banyak developer terpesona dengan tambahan fleksibilitas yang ada pada Compute Shader (CS). Tambahan pada pipeline ters but menandakan adanya kemajuan dalam API yang lebih render sentris serta memampukan adanya lebih banyak logaritma general purpose. Kita akan temui tambahan fleksibilitas pada kedua operasi yang dapat diterapkan baik pada data maupun tipe data yang dapat dioperasikan. Pada tingkatan pipeline yang lain, ditemui adanya batasan- batasan yang sengaja dirancang untuk mempercepat eksekusi dalam kode general purpose. Meskipun kita bisa memaksakan logaritma general purpose ke dalam sebuah program pixel shader, tetap saja tidak ada kebebasan untuk menggunakan struktur data seperti percabangan, sharing data antar pixel (dan threadnya) sangat sulit dan mahal, dan kita harus lebih dahulu melalui urutan proses menggambar triangle dan solusi mapping.
Dalam DX 11 dan CS, developer memiliki pilihan untuk melewatkan struktur data melalui CS dan menjalankan lebih banyak logaritma general purpose pada CS juga. CS akan men-share satu set resource fisik (yaitu shader processor) seperti yang ada pada tingkatan pemrograman penuh dari pipeline DX 10 dan Dx11 Hardware untuk DX 11 perlu sedikit lebih fleksibel daripada apa yang ada saat ini untuk menjalankan kode CS. Hardware tersebut haruslah mendukung random reads and writes (pembacaan dan penulisan acak) serta irregular array (dibandingkan array 2d ukuran tetap ),mendukung multiple output, campur tangan langsung dengan thread individu maupun grup sesuai kebutuhan programer, ruang shared register 32 k, manajemen thread dalam grup, instruksi atomis, sinkronisasi konstruksi serta kemampuan untuk menampilkan operasi IO tak berurutan.
Pada saat yang sama CS juga akan kehilangan beberapa fitur, karena tiap- tiap thread tidak lagi diperlakukan sebagai sebuah pixel
maka asosiasi dengan bangun geometri otomatis hilang(kecuali dilewatkan dalam struktur data secara spesifik). Hal ini berarti juga perhitungan otomatis LOD(level of detail) trilinear tidak lagi otomatis(LOd harus ditentukan) meskipun program CS masih bisa menggunakan texture sampler. Sebagai tambahan, depth culling, anti aliasing, alpha blending dan operasi- operasi lain yang tidak berarti pada data secara umum tidak akan bisa dilakukan dalam program CS.
Tipe aplikasi baru yang dapat dilakukan oleh CS sebenarnya tidak terbatas, namun yang akan segera menarik perhatian berasal dari developer game sendiri yang akan menambahkan engine grafis mereka dengan berbagai teknik yang tidak dimungkinkan oleh pixel shader. Beberapa teknik diantaranya termasuk teknik A-Buffer yang memungkinkan adanya anti-aliasing kualitas tinggi dan transparansi independen, teknik penundaan shading yang lebih maju, efek post-processing yang lebih maju dan rumit, FFT(Fast Fourier Transform,yang kuliah Fisika Matematik pasti tahu susahnya!!) untuk operasi domain frekuensi dan tabel area penambahan. Di belakang aplikasi rendering tertentu, developer game dimungkinkan juga melakukan hal hal seperti IK(Inverse kinematik/ kinematika terbalik), physics, AI dan tugas- tugas tradisional CPU lainnya pada GPU. Dengan ketersediaan data ini pada GPU yang dibantu kalkulasi nya oleh CS berarti data akan tersedia lebih cepat untuk digunakan dalam proses rendering dan terdapat beberapa logaritma yang bisa lebih cepat pula dilakukan pada GPU. Bahkan terdapat juga pilihan untuk melakukan physics dan AI baik pada GPU maupun CPU apabila ditemukan logaritma yang dapat senantiasa memberikan hasil serupa pada kedua tipe prosesor (yang akan menggantikan daya komputasi dengan bandwidth). Kode PS dan CS akan bekerja dengan cara yang sangat berbeda tergantung dari logaritma yang dipakai meskipun berjalan pada hardware yang sama. Salah satu hal yang patut diperhatikan adalah data exposure dan histogram yang digunakan pada proses render HDR. Mengkalkulasi data tersebut pada PS memerlukan beberapa langkah dan trik untuk seluruh pixel, baik untuk mengurangi atau merata-ratakannya. Sharing data akan sedikit memperlambat beberapa hal, namun akan jauh lebih cepat bila dibandingkan menjalankan banyak pass(seperti kalkulasi data PS saat ini). Hal ini pula yang mampu menjadikan CS sebuah tingkatan ideal bagi ogaritma semacam ini. Sebagai informasi , OpenCL akan mampu pula untuk berbagi struktur data dengan OpenGL. Belum diketahui adanya developer yang membandingkan OCL dengan CSnya DX11, tetapi ada kemungkinan OCL juga akan kompatibel dengan CS-nya DX11 sama seperti OGL+OCL. Open CL lebih ditujukan untuk antar muka komputasi general purpose yang dipercepat GPU dan independen dari Microsoft dan DX dibandingkan CS -nya DX 11 yang lebih menitikberatkan pada grafis 3d. Dengan demikian open CL akan lebih banyak digunakan untuk bahasa komputasi GPU dalam banyak aplikasi general purpose. Lima tahun terakhir pemakaian Open GL menurun secara drastis. Seiring dengan adanya kombinasi OCL+OGL, pasar untuk OGL sendiri kelihatannya akan lebih terfokus pada aplikasi CAD/CAM dan aplikasi simulasi yang memerlukan visualisasi.
Apa itu Tesselator?
Chipset pada GPU radeon R6xx(HD 2000,3000) dan R7xx(HD4000) telah memiliki tesselator namun tidak akan semata- mata bisa langsung kompatibel dengan DX11 karena pada radeon penerapannya lebih tertutup sementara pada DX 11 memiliki setelan yang jauh lebih maju. DX11 menyertakan masukan dan keluaran yang dapat diprogram dari Tesselator(TS) melalui dua tingkatan pipeline yang disebut Hull Shader(HS) dan Domain Shader(DS), sementara tesselator itu sendiri tidak akan programable(baik pada hardware AMD atau DX11 kelak). Tesselator dapat memecah bangun(poligonal) yang sangat b sar dan sederhana(kurang detail) menjadi bagian- bagian yang lebih kecil dan membentuknya ulang menjadi bangun geometri yang lebih kompleks mendekati kenyataan. Misalnya TS bisa mengubah sebuah kubus menjadi bola dengan sedikit overhead dan kebutuhan ruang yang lebih kecil. Hal tersebut menunju kan keunggulan kualitas , performa dan kemampuan manaj men yang baik. HS sendiri akan membawa masuk patches dan mambawa data keluaran control points tentang cara konfigurasi TS. Patches sendiri adalah sebuah primitif(bangun sederhana seperti titik sudut dan pixel)yang menentukan bagian dari sebuah bangun datar yang akan diolah oleh TS. Sedangkan control points dipakai untuk menentukan parameter bentuk dari permukaan yang diinginkan (misalnya lenkungan/kurva). Mirip dengan pen tool pada photoshop yang menerapkan permukaan bangun (seperti kotak atau lingkaran) dan bukan garis. HS menggunakan control points (titik kendali)untuk menentukan setelan TS dan melewatkannya ke DS. Fungsi dari TS sendiri hanya melakukan teselasi,yaitu memecah patches yang diumpankan HS berdasarkan parameter yang diberikan
HS untuk tiap patch. Kemudian keluaran yang berupa aliran titik- titik akan menuju DS untuk diolah guna melengkapi ke eluruhan proses. Programmer sendiri hanya perlu menuliskan program HS untuk kode mereka dan tidak dibutuhkan pemr gr man untuk TS sama sekali. TS hanyalah sebuah blok berfungsi  etap yang bertugas mengolah masukan berdasarkan para eter yang diberikan. DS mengambil titik- titik yang dihasilkan TS dan memanipulasinya untuk membentuk geometri yang tepat berdasarkan atas control points dan atau displacement maps( pemetaanpengambilalih/pengganti). DS mampu melakukan m nipulasi tentang bagaimana menggeser lebih jauh atau menganti teksur titik- titik yang baru saja dihasilkan berdasarkan control points dan tekstur yang ada dengan cara menjalankan program DS yang telah dirancang oleh developer sebelumnya. Setelah titik- titik diolah akan dihasilkan vertex(sebuah titik sudut).Vert ces( Titik sudut – titik sudut) ini dapat diproses lebih jauh oleh Geometry Shader (GS), yang dapat juga mengumpankannya kembali pada Vertex Shader(VS) dengan fungsional tas stream out.Kita mungkin akan melihat kebanyakan keluaran dari DS akan langsung menujuproses rasterisasi sehingga geometri yang terbentuk akan dipecah menjadi fragmen ruang layar untuk pemrosesan pixel shader. Demikian sedikit pengetahuan dasar tentang hal yang bisa dilakukan TS dan cara TS melakukannya. Namun bukankah GS yang ada pada DX 10 sekarang ini juga bisa menciptakan permukaan yang telah diteselasi dan memindahkan hasilnya juga ? Memang secara teori GS bisa saja melakukannya, namun tidak dalam prakteknya.
Tesselasi : Karena GS (Geometry Shader) Belum Cukup Cepat!
Kelihatannya Microsoft dan AMD lah yang paling bergairah ketika topik tentang DX 11 mencuat. AMD telah sejak lama me perkenalkan tesselasi, dan mungkin juga cukup masuk akal untuk menggunakannya pada konsol seperti XBOX360. M nambahkan hardware fungsi tetap untuk menangani task yang meningkatkan lebih banyak jumlah memori tersisa dengan lebih cepat akan memberikan banyak kelebihan di ruang tamu (men ingat konsol biasanya ada di bawah TV ruang tamu kita dan juga keterbatasan RAM yang dimiliki). Tapi pada komputer desktop TS masih belum terlalu menjual meskipun tidak ada yang akan bisa menghalangi kemajuan TS yang sedang berlangsung saat iniAtau apakah perkembangan yang terjadi saat ini memang te lalu pesat? Karena TS sendiri tidak lebih dari sebuah hardware berfungsi tetap yang tidak dapat diprogram(semacam ALU pada mikroprosesor generasi awal yang hanya bisa untuk melakukan operasi penambahan saja). Memang masukan dan keluaran dari TS bisa sedikit dimanipulasi melalui HS dan DS, namun inti dari TS sendiri tidaklah sefleksibel itu. Sedangkan GS sendiri adalah sebuah blok yang dapat diprogram dalam pipeline yang mampu melakukan tesselasi dan banyak hal lainnya, namun memang belum mempunyai cukup power untuk melakukan tesselasi yang bisa dikatakan “berguna”. Jadi sementara pemrograman dalam rendering pipe melangkah semakin maju, bisa dikatakan dalam hal ini (keberadaan TS) adalah sedikit melangkah ke belakang. Tapi Kenapa?
Ada pendapat yang menyebutkan bahwa hardware fungsi tetap dengan hardware yang dapat diprogram bagaikan performa lawan fleksibilitas/kegunaan. Pada mulanya, hardware berfungsi tetap dibutuhkan agar mendapat kan performa yang dibutu kan. Seiring berjalannya waktu, jelas bahwa menambahkan lebih banyak hardware berfungsi tetap pada chip grafis tidaklah bisa diterapkan. Transistor- transistor yang ditambahkan pada har ware tertentu menjadi tidak terpakai jika tidak dibuat program yang khusus mengambil keuntungan dari hardware tersebut oleh developer. Sehingga secara umum menciptakan seku pulan resource komputasi yang dapat dibagi pakai untuk banyak tugas berbeda menjadi pilihan yang jauh lebih menarik dalam arsitektur sebuah hardware. Namun hal ini bukan berarti hardware berfungsi tetap tidak memiliki tempat tersendiri.
Pada TS masalah yang timbul sama, yaitu transistor pada TS tidak akan berguna kecuali para developer sengaja menarik k untungan dari hardware tersebut. Namun kasus pada TS jadi berbeda jika ROI (Return On Investment: kenutungan yang anda petik dari apa yang anda tanam) pada transistor- transistor tersebut benar- benar dimanfaatkan sepenuhnya oleh para developer: jauh lebih mudah untuk mendapatkan performa tesselasi yang tinggi dari TS dibandingkan menaruh sekian resources pada GS agar GS dapat melakukan tesselasi yang setara dengan performa dari TS itu sendiri. Tetap saja hal ini bukan berarti akan ada kebangkitan blok berfungsi tetap pada hardware grafis kita; hanya saja kemajuan signifikan fitur ini ke depannya masih memerlukan pengorbanan programibilitas pada masa-masa awal pengadopsiannya. Kebanyakan task masih akan tersedia dalam cara pemrograman yang lebih fleksibel, dan kemungkinan di masa depan akan kita lihat lebih banyak fleksibilitas diperkenalkan dalam TS hingga suatu saat TS sepenuhnya dapat diprogram (atau digabungkan dengan versi baru dari GS) Untuk saat ini janganlah kerumitan teknis ini membuat anda mengira game dev tidak tertarik untuk menguliti keuntungan- keuntungan yang bisa didapatkan dari TS. Sebagai contoh, sekarang ini artist perlu menciptakan lebih banyak versi dari tiap objek untuk LOD yang berbeda- beda (mengurangi atau menambah kompleksitas objek yang bergerak menjauh atau mendekati pemain, misal saat ini bisa dilihat pada game FarCry2) dan simulasi geometri oleh pixel shader dengan m makaikan tekstur pada tiap- tiap LOD. Proses ini memerlukan kerja ekstra bagi programer maupun artist yang tidak sebanding dengan sedikitnya peningkatan performa yang didapatkan. Ada juga beberapa efek yang hanya bisa dilakukan dengan lebih banyak geometri. Tesselasi adalah cara hebat untuk mendapatkan lebih banyak detail, bayangan dan tepian yang halus pada geometri. Geometri tinggi berarti juga memampukan efek pergeseran mapping yang lebih keren. Pada saat ini geometri disimulasikan melalui tekstur yang disertai teknik seperti bump mapping atau parallax occlusion mapping. Bahkan dengan geometri yang lebih besar, akan diperlukan pula normal map yang lebih besar untuk logaritma lighting yang dipakai, tetapi tentu saja kita tidak perlu melakukan banyak pekerjaan hanya untuk membuat detail kecil yang akan muncul pada geometri seperti retakan atau tonjolan karena kita hanya perlu melakukan tesselasi dan meletakkan detail itu dalam satu kali pass melalui pipeline. Hal yang jauh lebih cepat, efisien dan menghasilkan lebih banyak efek yang mendetail sementara membebaskan resource pixel shader u tuk hal lain. Dengan TS, seorang artis dapat membuat satu sub divisi dari sebuah permukaan yang memiliki LOD dinamis de gan begitu mudah; sebuah HS sederhana dan sebuah displac ment map yang diterapkan dalam DS akan menghemat banyak pekerjaan, meningkatkan kualitas dan menghasilkan sedikit peningkatan performa. Jika para developer mengadopsi TS, akan kita lihat banyak hal keren, dan bersamaan dengan perpindahan ke hardware DX 11, baik NVIDIA atau AMD pasti akan turut ambil bagian dalam peningkatan kemampuan tesselasi. Namun sekali lagi, baik TS atau CS sendiri dalam waktu dekat tidak akan serta merta digunakan para developer. Karena DX 11 sendiri mampu berjalan pada tingkatan hardware yang lebih rendah maka pada saat perilisannya nanti masih akan ada ba yak penerapan fitur dari DX 11 yang ditunda agar bisa berjalan juga pada hardware DX 10.Tentu saja, pada titik ini game dev bisa dengan penuh percaya diri mengeksploitasi segala aspek dari hardware Dx 10. Banyak orang yang masih menginginkan DX9 karena kegagalan Vista, artinya Dx 10 lebih kurang hanya menjadi versi peningkatan DX9 daripada sesuatu yang secara fundamental berbeda. Jadi pada saat DX 11 keluar, akan kita saksikan apa yang bisa dilakukan game Dev dengan Dx10, Tentunya akan ada pula developer yang bereksperimen dengan TS, tapi mungkin hanya berkisar pada sedikit peningkatan untuk menyingkirkan tepian yang masih bergerigi disekitar permukaan melengkung. Masih dibutuhkan banyak waktu untuk menerapkan teknik tesselasi yang lebih maju seperti yang diharapkan banyak orang.
Penutup
Hal terakhir dari DX11 akan membahas mengenai update pada HLSL (high Level Shader Language) versi 5.0 yang membawa beberapa peningkatan bagi para developer. Dengan syntax yang menyerupai bahasa C, HLSL 5.0 menambahkan duku gan untuk class dan interface. Beberapa perubahan dibuthkan karena ukuran kode shader yang ada saat ini makin membengkak. Programmer dan artis perlu untuk membangun atau menghasilkan sebuah shader berukuran besar atau banyak sekali shader berukuran kecil- kecil untuk tiap game. Kode- kode ini sangat besar ukurannya dan akan sangat sulit diatur tanpa struktur OOP(object oriented programming) . Terdapat beberapa perbedaan antara OOP pada HLSL dan OOP program lain. Con ohnya pada HLSL tidak diperlukan adanya manajemen memori (karena tidak adanya pointer) atau constructor dan destructor. Task semacam proses inisialisasi ditangani melalui update terhadap buffer yang berupa konstanta, dan umumnya mewakili data member. Disamping aspek pemrograman, class dan iterface ditambahkan pula guna menghadapi rumitnya pengembangan dengan jumlah resource dan efek yang luar biasa besar. Dynamic linking memampukan aplikasi untuk memutuskan shader apa yang harus dikompilasi dan dihubungkan ketika program sedang berjalan serta menyediakan antar muka yang tetap ambigu hingga program dijalankan. Saat dijalankan, seluruh shader dihubungkan secara dinamis dan berdasarkan hubungan tersebut keseluruhan fungsi yang dimungkinkan pada batang tubuh program kemudian dikompilasikan dan dioptimalkan. Kumpulan kode asli hardware tidak akan dimasukkan dalam baris pemrograman sampai dengan fungsi SetShader yang sesuai dipanggil. Fleksibilitas yang diberikan akan mengijinkan pengembangan kode shader yang lebih dinamis dan kompleks, sehingga keseluruhan kode idak perlu berada dalam satu blok dengan banyak “if”, atau tidak diperlukan juga ribuan shader k cil yang mengganggu konsentrasi para developer. Cara ini akan membantu DX mengurangi kompleksitas kode yang seringkali menjadi masalah ketika pengembangan sebuah game berlan sung, meskipun performa dari shader sendiri masih sebatas hal- hal yang bisa dilakukan saat ini saja. DX 11 luar biasa agresif karena dilengkapi dengan kemampuan seperti akses memori tak berurutan, multi-threading, tesselasi, dan Compute Shader. Kompleksitas upgrade dapat dikurangi dengan kenyataan ba wa tidak terdapat perubahan besar- besaran seperti pada perubahan dari DX9 ke DX 10 karena DX 11 sendiri dalam hal fitur tidak lebih hanyalah penyempurnaan dari DX10. Hal ini yang memampukan DX 11 berjalan pada tingkatan hardware lebih rendah (dimana fitur khusus pada DX11 tidak digunakan ), ketika digabungkan dengan peningkatan pada HLSL dengan O Pnya dan linking shader dinamis bearti developer hanya akan mengalami sedikit kecemasan ketika berpindah dari DX 10 ke DX 11 daripada dari DX9 ke DX10(Tentu saja seperti biasanya seperti yang sudah-sudah: game DX8 yang pertama muncul ketika DX9 diluncurkan , dan game DX9 yang berbobot baru muncul ketika DX10 diluncurkan) Sejujurnya kebutuhan untuk mengupgrade OS juga dapat menjadi salah satu senjata and lan. Hal ini tidak akan menjadi masalah karena Vista yang m nyebalkan tetap mendapat dukungan DX11 (sehingga penguna vista tidak diharuskan melakukan upgrade) dan Win 7 dapat menjadi pilihan upgrade yang sesuai bagi pengguna XP. Para pengembang yang setia dengan DX9 juga akan melewatkan DX10 secara keseluruhan demi Dx11 tergantung prediksi tan gal peluncuran game mereka; tanda- tanda yang ada saat ini juga menunjukkan DX 11 akan sangat menentukan waktu te jadinya revolusi seperti yang dijanjikan sebelumnya oleh DX10. Developer masih memiliki cukup waktu untuk membiasakan diri dengan tambahan keunggulan dalam hal programibilitas yang sebelumnya ditawarkan DX 10(tapi tidak terwujud), pengkod an DX 11 pun akan lebih mudah dengan dukungan konstruksi OOP dan multi-threading, serta kemampuan untuk berjalan pada hardware yang lebih rendah dengan lingkungan pengkodean yang lebih baik akan membuat para developer tidak punya al san lagi untuk tidak segera berpindah ke DX11.

Minggu, 24 Juli 2011

Teknology ( AMD) ATI Radeon seri 5000

Akhirnya kartu grafis DX 11 yang pertama di dunia resmi diluncurkan pada tanggal 22 September 2009 yang lalu. Adalah AMD ATI yang pertama kali mengeluarkan kartu grafis DX11 berlabel radeon HD 5870 dan 5850 (dengan code name Cypress) meskipun game yang mendukung DX11 sendiri belum diluncurkan dan tidak ada Operating System (OS) yang telah dirilis secara resmi DX11(win 7 yang sudah secara resmi diluncurkan). Tentu saja sangat menarik untuk membahas keunggulan kartu ini dibandingkan dengan kartu grafis keluaran AMD ATI sebelumnya, yaitu Radeon HD 4870 (RV770).

 Sesekali sebuah kejutan bisa berbuah manis. Sesekali pula bagus juga apabila sesuatu yang kita rencanakan bisa berjalan dengan baik.Dibandingkan dengan peluncuran Radeon HD seri 4800, Radeon HD 5800 masuk dalam kategori yang kedua. Tidak ada pengumuman penting menjelang waktu peluncuran atau pengunduran tanggal peluncuran secara mendadak. selayaknya sebuah karttu grafis pada umumnya, Peluncuran radeon HD 5800 berjalan normal. Akibatnya apa yang akan dibahas dalam artikel ini bukanlah sebuah kejutan bagi kita yang senantiasa rajin mengikuti perkembangan berita kartu grafis DX11 pertama ini. AMD mengumumkan rencana peluncuran keluarga GPU Evergreen-nya sudah semenjak 3 bulan yang lalu. Evergreen adalah sebutan untuk jajaran kartu grafis DX11 terbaru milik AMD yang pada saat ini masih terdiri dari HD 5870 dan HD 5850. AMD secara resmi telah mengumumkan pula teknologi Eyefinity yang berjalan pada platform HD 5870 milik mereka semenjak 2 minggu yang lalu, sehingga ada beberapa hal yang dibahas pada artikel kali ini hanyalah sekedar konfirmasi dari apa yang telah kita ketahui bersama.
Perbandingan teknis kartu grafis AMD seri 5000 dan 4000 selengkapnya dapat dilihat pada tabel berikut ini :
Dari tabel perbandingan di samping, Secara singkat cypress dapat dikatakan sebgai sebuah Radeon HD4890 yang dilipatgandakan spesifikasinya , dengan beberapa tambahan fitur baru semacam eyefinity dan angle independent anisotropic filtering, daya yang lebih rendah ketika idle, dan proses fabrikasi TSMC 40 nm. Cypress dapat juga dikatakan sebagai revolusi langsung dari RV7xx dengan banyak kemiripan dalam desain dan cara kerja.
Jajaran VGA DX11 dari AMD
Perlahan namun pasti kondisi internal AMD mulai membaik meskipun krisis ekonomi masih berlangsung dan
banyak perusahaan yang mengalami restrukturisasi. Salah satu strategi sukses AMD tentu saja karena pengambilalihan ATI dimana ATI sendiri secara signifikan menunjukkan penguatan kinerja yang luar biasa terutama semenjak diluncurkannya seri radeon HD 4000 setahun yang lalu. Tidak ada yang bisa menyangkal seri radeon HD 4000 merupakan kesuksesan besar yang senantiasa menghantui dan mengganggu NVIDIA. NVIDIA sendiri dipaksa harus membayar mahal atas kekalahan yang mereka alami padahal apabila ditelaah lebih jauh pendekatan yang dilakukan ATI sendiri cukup sederhana, yaitu dengan menawarkan sebuah solusi kartu grafis yang dilengkapi banyak fitur berperforma tinggi dengan harga yang sesuai (tidak overpriced). Dengan ini AMD bertujuan untuk membuat sebuah produk GPU yang mampu memimpin di setiap titik harga dengan performa dan manajemen daya sebaik dan seefisien mungkin.
Dimulai dari penamaan yang berubah dari kode angka pada kelas kartu grafis DX10 sebelumnya (RV7xx) menjadi kode nama pada keluarga kartu grafis DX11 yang diluncurkan saat ini, yaitu Cypress. Prodeuk Seri HD5000 dimasukkan ATI dalam jajaran keluarga Evergreen. Selain Cypress Dalam beberapa waktu ke depan akan terdapat pula beberapa produk yang dirilis dalam jajaran kelurga evergreen dengan kode nama sbb :
1. 1. Hemlock,solusi kartu grafis dual chip(X2) dari AMD yang terdiri dari dua buah chip RV870 (dikenal pula dengan R800)
2. 2. Juniper, solusi kartu grafis chip tunggal kelas performance yang akan menggantikan Seri Radeon HD 4870 dan 4850.
Kemungkinan diberi nama Radeon HD 5750 dan 5770.
3. 3. Redwood, solusi kartu grafis chip tunggal kelas mainstream yang didasarkan chip RV830 yang akan menggantikan kedua seri RV730 dan RV740.
4. 4. Cedar, solusi kartu grafis chip tunggal kelas entry- level yang didasarkan pada chip RV810.
Cypress memiliki ukuran die 334 mm2, lebih besar dibandingkan ukuran die RV770 sebesar 260mm2. Cypress sendiri menjadi dasar bagi pengembangan chip lainnya dalam jajaran keluarga evergreen. Ditilik dari harga kemungkinan seri hemlock akan memiliki MSRP (Most Suggested Retail Price) berkisar antara $549-599, sedangkan seri cypress yang terdiri dari Radeon HD 5870 dan 5850 sendiri memiliki MSRP $379 dan $259 yang ditujukan untuk bersaing mengalahkan seri GTX285 milik NVIDIA.
Penjelasan Teknis Tentang kinerja Kartu Grafis Agar tidak bingung mengenai beberapa istilah teknis yang akan dibeber pada bagian selanjutnya, sedikit akan saya tuliskan mengenai bagaimana sebuah kartu grafis bekerja hingga akhirnya dapat menampilkan gambar pada monitor kita. Apakah yang dibutuhkan agar game dapat dirender (ditampilkan pada layar monitor)? Misalkan saja ada sebuah objek 3d yang akan ditampilkan secara 2d pada layar monitor kita.
Pertama- tama dimulai dengan membuat beberapa macam struktur bangun dengan permukaan (surface)yang terdiri atas bangun- bangun segitiga (triangles). Triangles dipakai karena dapat dengan mudah dan cepat diolah oleh komputer. Selanjutnya yang dilakukan adalah tiap- tiap triangle ditransformasikan berdasarkan sudutpandang dan posisi relatif terhadap viewer. Langkah berikutnya memberikan efek pencahayaan (lighting) pada triangles dengan mengambil data titik- titik sudut (vertices) setelah ditransformasikan dan menerapkan kalkulasi lighting untuk tiap- tiap lighting yang sudah ditentukan sebelumnya pada bidang.
Terakhir triangle diproyeksikan pada layar agar dapat dirasterisasikan (raster : menampilkan objek 3d pada bidang 2d). Selama proses ini triangles akan diberikan shading dan tekstur. Prosesor- prosesor grafis semacam seri Radeon dan geforce mampu melakukan operasi- operasi di atas dalam jumlah yang luar biasa besar. CPU sendiri masih dibebani dengan berbagai macam tugas-tugas seperti transformasi dan pencahayaan vertice, shading dan texturing melalui pengolahan proses gradien triangle dan lain sebagainya. Memasukkan pengolahan triangle ke dalam logika chip kartu grafis pada akhirnya dimungkinkan dan bahkan proses transformasi dan ligting (TnL) pun dimungkinkan untuk dilakukan secara hardware sehingga mampu mengurangi beban CPU secara signifikan. Yang masih menjadi kendala bagi game programmer pada masa itu adalah tidak adanya kontrol langsung terhadap transformasi, lighting dan rendering pixel karena semua kalkulasi model yang ada merupakan fungsi tetap yang telah ditentukan dalam chip kartu grafis.
Pada tahun 2000 direct X8 resmi dirilis dengan membawa fitur vertex dan pixel shader yang memungkinkan game programmer dan software untuk melakukan pemrograman transformation dan lighting sendiri beserta dengan fungsi pewarnaan pixel yang mampu memberikan dimensi dan pengalaman gaming yang baru sehingga game menjadi makin realistis. Shader sebenarnya tidak lebih dari sebuah kode pemrograman kecil yang dieksekusi dalam kartu grafis untuk mengontrol pemrosesan vertex, pixel dan geometri. Jadi shader prosesor dapat dikatakan sebagai sebuah prosesor yang khusus menangani nilai- nilai floating point (type data untuk memuat nilai yang sangat besar, misalnya 3 x 108 , 108 adalah type data floating point) dalam sebuah GPU. Direct X 9 yang masih banyak digunakan hingga saat ini diperkenalkan pada tahun 2002. Keunggulan DX 9 diantaranya adalah program shader yang lebih panjang dari DX8 dengan pixel dan vertex shader 2.0. Meski demikian masih terdapat sedikit batasan dimana prosesor kartu grafis pada masa ini masih dibagi menjadi 2 unit pipeline terpisah untuk vertex processing dan pixel shading. Dengan diperkenalkannya DX10, tidak ada lagi batas pipeline untuk vertex processing dan pixel shading. Arsitektur baru ini dikenal sebagai unified shader architecture, yaitu shader prosesor yang mampu menangani beragam operasi shader. Pembuat GPU sering pula menyebut shader dengan stream prosesor. Sama saja namun dengan sedikit perbedaan konteks.
GPU adalah stream prosesor, yaitu prosesor yang mampu beroperasi secara paralel untuk menangani banyak fragmen dan vertice sekaligus. Stream sendiri adalah sekumpulan record yang membutuhkan proses komputasi serupa. terhadap transformasi, lighting dan rendering pixel karena semua kalkulasi model yang ada merupakan fungsi tetap yang telah ditentukan dalam chip kartu grafis.Pada tahun 2000 direct X8 resmi dirilis dengan membawa fitur vertex dan pixel shader yang memungkinkan game programmer dan software untuk melakukan pemrograman transformation dan lighting sendiri beserta dengan fungsi pewarnaan pixel yang mampu memberikan dimensi dan pengalaman gaming yang baru sehingga game menjadi makin realistis.

Shader sebenarnya tidak lebih dari sebuah kode pemrograman kecil yang dieksekusi dalam kartu grafis untuk mengontrol pemrosesan vertex, pixel dan geometri. Jadi shader prosesor dapat dikatakan sebagai sebuah prosesor yang khusus menangani nilai- nilai floating point (type data untuk memuat nilai yang sangat besar, misalnya 3 x 108 , 108 adalah type data floating point) dalam sebuah GPU.
Direct X 9 yang masih banyak digunakan hingga saat ini diperkenalkan pada tahun 2002. Keunggulan DX 9 diantaranya adalah program shader yang lebih panjang dari DX8 dengan pixel dan vertex shader 2.0. Meski demikian masih terdapat sedikit batasan dimana prosesor kartu grafis pada masa ini masih dibagi menjadi 2 unit pipeline terpisah untuk vertex processing dan pixel shading. Dengan diperkenalkannya DX10, tidak ada lagi batas pipeline untuk vertex processing dan pixel shading. Arsitektur baru ini dikenal sebagai unified shader architecture, yaitu shader prosesor yang mampu menangani beragam operasi shader. Pembuat GPU sering pula menyebut shader dengan stream prosesor. Sama saja namun dengan sedikit perbedaan konteks. GPU adalah stream prosesor, yaitu prosesor yang mampu beroperasi secara paralel untuk menangani banyak fragmen dan vertice sekaligus. Stream sendiri adalah sekumpulan record yang membutuhkan proses komputasi serupa.
Spesifikasi RV770
Mengingat Cypress adalah evolusi langsung dari desain RV770, sangatlah penting untuk memahami bagaimana RV 770 dibangun . Otak dari RV770 adalah 800 buah ALU (arithmetic logic unit/ bagian inti prosesor yang menangani operasi aritmatika seperti penambahan , pengurangan dan perkalian) tunggal yang disebut juga Stream Processing Unit (SPU) atau shader processor. 800 SPU ini dibagi dalam grup yang masing- masing terdiri dari 5 SPU, grup ini dinamakan Streaming Processor (SP). Secara lengkap sebuah SP terdiri dari sebuah file register (register adalah memori hirarki teratas tempat menyimpan data yang akan dan telah diolah oleh inti prosesor secara langsung), sebuah branch predictor, dan 5 SPU seperti yang telah disebutkan sebelumnya. SPU kelima dalam SP adalah sebuah unit kompleks yang mampu mengolah fungsifungsi transedental (fungsi yang sangat sukar pemecahannya, seperti fungsi transformasi fourier) bersamaan dengan fungsi dasar ALU. SP sendiri merupakan unit terkecil yang mampu mengerjakan pekerjaan individual; tiap SPU di dalam SP haruslah mengeksekusi instruksi yang sama.
Kombinasi 16 SP bersama dengan texture units, L1 cache, shared memory dan controlling logic disebut dengan SIMD (Single Instruction Multiple Device) oleh AMD, RV 770 sendiri memiliki 10 SIMD. Inti dari kekuatan komputasi RV770 terdiri dari 10 SIMD yang bekerja bersama dengan berbagai macam unit khusus seperti ROPs(Raster Operations), rasterizers, L2 cache dan tesselator yang akan membentuk arsitektur RV770 secara lengkap seperti terlihat pada gambar di bawah:
Untuk mendayagunakan seluruh kekuatan komputasi hardware RV770, thread instruksi akan dikirimkan ke SP. Thread ini dikelompokkan dalam wavefronts dimana masing- masing wavefronts terdiri dari 64 thread. Demi memaksimalkan pendayagunaan GPU, threads perlu diorganisir sehingga instruksi dapat tersebar merata dalam 5 SPU yang terdapat dalam sebuah SP di setiap siklus clock-nya. Untuk itu diperlukan penarikan Instruction Level Paralellism (ILP, Paralelisme pada tingkat instruksi, maksudnya adalah bukan thread yang mengalami paralelisme seperti paralelisme pada cpu tapi instruksi, dimana instruksi adalah bagian dari thread) keluar dari program yang dilewatkan menuju GPU dan menjadi salah satu tugas yang teramat sulit bagi compiler milik AMD. Performa chip secara keseluruhan bisa saja menurun jika sampai ada SPU yang menganggur. Secara teori, desain ini akan memberikan AMD kekuatan komputasi yang luar biasa besar namun pada prakteknya tetap menjadi sebuah tantangan terdiri untuk sepenuhnya mengeksploitasi seluruh kemampuan yang dimiliki chip RV770. Perbedaan penanganan threads pada RV 770 dan GT200 dapat dilihat pada grafis di bawah ini .
Gambaran penanganan threads pada RV 770 inilah yang disebut dengan ILP Secara ringkas fiitur yng dimiliki cypress antara lain:

Arsitektur Cypress dan Kelebihannya
Secara ringkas fiitur yng dimiliki cypress antara lain
• 1GB GDDR5 memory
• ATI Eyefinity technology dengan dukungan hingga enam displays
• ATI Stream technology
• Designed for DirectCompute 5.0 and OpenCL
• Accelerated Video Transcoding (AVT)
• Compliant with DirectX 11 and earlier revisions
• Supports OpenGL 3.1
• ATI CrossFireX™ multi-GPU support for highly scalable performance
• ATI Avivo™ HD video and display technology
• Dynamic power management with ATI PowerPlay technology
• DL-DVI, DL-DVI, DisplayPort, HDMI
• PCI Express® 2.0 support

Untuk meningkatkan performa dan memenuhi kebutuhan beragam API (Application programming Interface/ aplikasi yang menjadi jembatan sofware program dengan hardware) AMD telah menambahkan beberapa instruksi hardware baru dan meningkatkan kecepatan eksekusi instruksi lain di dalam SPU Cypress. Perubahan lain diantaranaya adalah pengurangan siklus penanganan perkalian vektor (dot product) menjadi hanya 1 siklus dari sebelumnya yang banyak siklus. Operasi perhitungan jumlah bit, penyisipan bit serta pengurangan bit yang dibutuhkan DX11 juga telah ditambahkan. Penambahan instruksi yang paling menarik perhatian adalah sebuah instruksi untuk Sum of Absolute Differences (SAD, penjumlahan selisih mutlak). SAD merupakan instruksi penting yang dibutuhkan dalam video encoding dan computer vision untuk dipakai dalam estimasi gerak. Belum adanya instruksi ini secara langsung pada RV770 membuat SAD harus diemulasikan dalam tidak kurang dari 12 instruksi. Dengan tambahan instruksi SAD ini waktu untuk menghitung SAD telah berkurang hingga menjadi 1 siklus clock saja, dan dengan ini AMD percaya bahwa kecepatan video encoding akan meningkat hingga 2 kali lipat.
Sayangnya SAD bukanlah sebuah instruksi yang menjadi bagian dari DX11 atau OpenCL (hanya ekstensi pada OpenCL), artinya program DX tidak akan bisa menggunakan fungsi ini. Akan tetapi compiler AMD masih bisa menggunakan instruksi ini,yang diperlukan hanyalah menunjukkan tempat dimana instruksi ini harus digunakan. Dengan mengenali versi panjang SAD(yang membutuhkan 12 instruksi) di dalam kode program, compiler AMD bisa menggantinya dengan instruksi SAD yang ada dalam hardware (yang hanya membutuhkan 1 siklus clock) sehingga dapat dieksekusi lebih cepat dalam program yang sebenarnya tidak bisa menggunakan SAD secara langsung.
Singkatnya sebuah SP dari Cypress dapat melakukan hal berikut dalam satu siklus clock:
1. 4 operasi FP MAD (Floating Point Mean of Absolut Difference, Rataan Selisih Mutlak Floating Point) sepanjang 32 bit
2. 2 operasi FP MUL atau ADD (perkalian atau penjumlahan floating point) sepanjang 64 bit
3. 1 operasi FP MAD sepanjang 64 bit
4. 4 operasi Int MUL atau ADD (perkalian atau penjumlahan integer) sepanjang 24bit,
5. Khusus Untuk SFU (Special function unit, SPU kelima yang memiliki fungsi transendental) mampu untuk menangani 1
operasi FP MAD sepanjang 32 bit.

Peningkatan pada SP secara ringkas dapat pula dilihat pada grafik di bawah ini.

Peningkatan lain SIMD Cypress terletak pada kecepatan L1 texture cache yang mampu menarik data texture dengan kecepatan 1 TB/ detik. Ukuran L1 texture cache sendiri masih tetap 16 KB, namun L1 cache terpisah sebesar 8 KB telah ditambahkan dalam SIMD untuk tugas-tugas komputasi selain data tekstur. Peningkatan terjadi pula pada ukuran data share lokal yang disematkan pada tiap SIMD sebesar 32 KB(dua kali lipat RV770) yang secara langsung akan meningkatkan performa komputasi SIMD itu sendiri. Texture unit pada SIMD cypress juga telah digarap ulang oleh AMD. Perubahan pertama adalah kemampuan untuk membaca compressed AA color buffer untuk mengoptimalkan penggunaan bandwidth yang ada. Perubahan kedua adalah peningkatan kecepatan interpolasi texture unit tanpa melakukan proses interpolasi. Proses interpolasi dipindahkan ke SP (bagian dari Pull Model baru DX11) yang mampu menangani proses ini lebih cepat dibanding texture unit itu sendiri. Akibatnya fillrate dari texture unit milik Cypress jauh lebih efektif daripada milik RV770 hingga mencapai 68 triliun bilinear filtered texture tiap detik (menurut AMD sendiri).
Selanjutnya yang paling berperan besar dalam peningkatan performa Cypress secara keseluruhan atas RV770 adalah pelipatgandaan jumlah SIMD dari 10 unit pada RV 770 menjadi 20 unit pada cypress. Ini berarti juga jumlah SP dan texture unit yang meningkat hingga 2 kali lipat, memang konsepnya sederhana namun karena SIMD mengandung komponen yang paling penting maka hasil yang didapat cukup efektif untuk meningkatkan performa.

Arsitektur Cypress
Jumlah SIMD yang meningkat 2 kali lipat mutlak membutuhkan penampung data yang lebih besar. Untuk itu 4 unit L2
caches digandakan kpasitasnya dari 64 KB menjadi 128 KB dengan kecepatan transfer data ke L1 cache hingga 435
GB/detik, naik dari 384 GB/detik pada RV770. Global data share juga telah ditambahkan 4 kali lipat menjadi sebesar 64 KB.

Jumlah ROPs juga telah dilipatgandakan untuk memenuhi kebutuhan pemrosesan data dari semua SIMD dari 16 menjadi
32 ROPs. ROPs sendiri juga telah sedikit ditingkatkan kemampuannya. Antara lain kemampuan untuk melakukan fast
color clear dimana terdapat beberapa game yang melakukan hal ini ratusan kali dalam satu waktu diantara tiap framenya. Fast color clear juga berperan penting dalam menangani beberapa aspek yang diperkenalkan ulang oleh AMD dalam mode Super sampling Anti-Aliasing. Penambahan terakhir adalah tesselator yang diupgrade dari RV770 agar memenuhi standar DX11 dimana kini telah dilengkapi dengan Hull Shader dan Domain shader bersama dengan algoritma baru untuk mengurangi artifak dari tesselation . Ditambahkan pula rasterizer kedua untuk memenuhi kebutuhan 20 SIMD yang ada. Sedikit tentang teknologi GDDR5. AMD masih memakai teknologi memory GDDR5 dengan 256-bit bus width untuk cypress namun dengan disertai berbagai peningkatan seperti kemampuan untuk memory error detection dan kompensasi temperatur yang akan mengijinkan kartu grafis ini untuk mencapai kecepatan memori lebih tinggi. Masalah yang ada saat menggunakan perangkat memory dengan kecepatan tinggi seperti GDDR5 adalah perlunya bus yang cepat sekaligus lebar, dua variabel yang biasanya berlawanan pada saat mendesain bus memory. Chip memory tunggal GDDR5 harus dihubungkan dengan sebuah bus dengan lebar 32 bit dan berjalan pada kecepatan 1,2 GHz dengan toleransi kesalahan sekecil mungkin. Bagi 5870 yang meilliki total 256 bit bus width akan ditemui lebih banyak gangguan dan ruang gerak yang lebih sempit demi menggabungkan 8 bus 32 bit yang diperlukan oleh kartu grafis ini. Bus memory menjadi salah satu titik lemah bagi kartu grafis yang menggunakan GDDR5 Karena kesulitan yang timbul untuk membangun bus smacam itu. Memory controller GPU dan chip memory nya sendiri bisa saja untuk dipacu lebih cepat dan lebih gegas namun tidak dengan bus-nya. Alhasil, untuk mengakali hal ini, memory controller GDDR5. diberikan kemampuan untuk melakukan deteksi kesalahan mendasar (basic error detection) pada saat proses read dan write berlangsung dengan mengimplementasikan fungsi hash CRC-8. Dengann dinyalakannya fitur ini, untuk tiap 64 bit kandungan data terdapat sebuah hash cyclic redundancy check 8-bit(CRC-8) yang dikirimkan melalui 4 pin EDC (Error Detection & Correction) tersendiri. CRC kemudian digunakan untuk memeriksa kandungan data dan menentukan apakah terdapat error di dalamnya selama transmisi. Fungsi CRC yang dipakai secara khusus mampu mendeteksi error 1-bit dan 2-bit dengan akurasi 100%, akurasi akan terus berkurang seiring dengan tambahan jumlah bit yang dideteksi. Saat error ditemukan kontroler GDDR5 akan terus menerus meminta pengulangan trnsmisi terhadap kandungan data yang error hingga tidak lagi ada kesalahan. Permintaan untuk transmisi ulang sekaligus akan mengajari sambungan GDDR5 untuk membenahi potensi masalah yang mungkin muncul karena perubahan kondisi. Hal ini tidak berkaitan perubahan clock speed GDDR5 (speed tidak diturunkan), hanya saja sambungan yang ada perlu dinisialisasi ulang. Apabila error yang terjadi ternyata adalah palsu dan bus tidak mampu menangani clock speed yang diminta dengan sempurna, error akan terus berlangsung dan dicatat oleh kontroler GDDR5 . Harus diingat juga bahwa skema deteksi error ini tidak berarti bisa memperbaiki error yang terjadi secara pada controller memory. AMD sendiri mengatakan tidak akan mungkin mengirim barang yang sudah rusak untuk dijual, sehingga bisa dikatakan bahwa kemampuan error detection yang ada pada GDDR5 5 ini hanya sekedar mekanisme untuk berjaga- jaga dan bukan alat untuk mendukung dilakukannya overclocking pada memory. Qimonda sebagai supplier memori sendiri dalam salah satu dokumennya menekankan bahwa mekanisme error detection sangat penting untuk diperhatikan karena bertambahnya jumlah kode yang tersimpan dalam memori grafis GDDR 5 dapat menyebabkan terjadinya crash (bukan hanya bad pixel) apabila sampai terjadi kegagalan.
Eyefinity
Fitur baru yang dsematkan AMD dalam Cypress adalah Eyefinity, yaitu dukungan terhadap gaming untuk banyak monitor sekaligus dengan resolusi ekstra tinggi. Dengan eyefinity tidak akan lagi ada masalah untuk menghubungkan 3 buah monitor 30” dengan resolusi 2560 x 1600 atau 6 buah monitor resolusi 1920 x 1080 sekaligus. Cypress mampu untuk menggabungkan banyak monitor menjadi satu display dengan resolusi sejumlah total resolusi native masingmasing monitor dengan batasan totalnya tidak lebih dari 7680 X 3200 pixel. Ini berarti ultra High Definition gaming bisa kita nikmati sekarang juga tanpa perlu menunggu adanya monitor dengan native resolution tinggi dirilis (mengingat resolusi monitor tertinggi yang diluncurkan hingga saat ini hanya sebesar 3840 x 2400 pixel/resolusi WQUXGA dengan harga ribuan dolar per unit). Kartu grafis untuk dukungan 6 monitor dengan 6 display port sendiri akan diluncurkan terpisah oleh AMD. HD5870 yang ada di pasaran saat ini hanya mampu untuk mendukung 3 hingga 4 monitor sekaligus. Sejarah eyefinity sendiri dimulai pada tahun 2006- 2007 dimana pada saat itu ATI tengah mengerjakan spesifikasi keseluruhan dari GPU RV870 saat ini. GPU ini didesain dengan menggabungkan pandangan dari teknisi ATI bersama dengan keinginan dari
pengembang, konsumen dan OEM. Eyefinity merupakan permintaan OEM. ATI yang tengah mengerjakan arsitektur versi mobile RV870 menyadari akan adanya sejumlah output displayport (DP) atas permintaan OEM. OEM menginginkan adanya 6 output DP daqri GPU, namun hanya dua yang dapat aktif secara bersamaan. ATI menimbang- nimbang untuk mengaktifkan ke enam DP sekaligus dan berhasil, sehingga RV870 mampu menangani hingga enam display sekaligus pada waktu bersamaan. Namun, tidak hanya hardware saja yang ditangani secara serius oleh ATI. Software pendukungnya pun telah mampu menangani resolusi besar pada hampir semua game yang pernah diujicobakan seperti RE5 dan World of warcraft. Secara hardware radeon HD 5870 sendiri cukup mampu untuk merender banyak games pada resolusi tinggi dengan setting full detail pada frame rate yang masih playable (>40 FPS).

Angle Independent Anisotropic Filtering
Kualitas anisotropic filtering (AF)meningkat perlahan beberapa tahun belakangan ini. Pada saat pertama kali diterapkan oleh AMD dan NVIDIA, AF masih bersudut (angle-dependent)sehingga tidak banyak peningkatan kualitas yang bisa diharapkan dari AF semacam ini. AF yang masih angle-dependent ini menyebabkan gambar masih terkesan silau dan timbul artifact. Pada generasi kartu grafis sebelumnya (DX10) kualitas AF semakin membaik , dimana teknologi mode AF yang dimiliki NVIDIA semakin mendekati bentuk bidang tak bersudut (angle-independent) sedangkan teknologi milik AMD hanya sedikit lebih buruk. Keduanya Tidak ada yang sempurna namun tidak ada pula yang bisa dikatakan sangat buruk. Meskipun belum ada yang berhasil menerapkan Angle-Independent AF, masih terdapat banyak ruang untuk meningkatkan kualitas AF. Dan AMDlah yang pertama berhasil untuk meraihnya dengan penerapan algoritma AF yang baru sehingga AF pada seri HD 5000 telah sepenuhnya angle- independent tanpa perlu trik khusus. Dengan ini berarti peperangan kualitas angle-independent AF resmi berakhir dengan kemenangan di tangan AMD meskipun NVIDIA kelak mampu menyusul, namun hasilnya kemungkinan akan seimbang. Hal ini karena tidak dimungkinkan lagi ada yang lebih baik dari angle independent AF. Yang patut diingat menurut pernyataan AMD tidak akan ada performance hit dengan dipakainya algoritma baru kali ini dibandingkan dengan yang lama. Meskipun sulit dibuktikan karena tidak adanya test yang bisa dipakai untuk memakai algoritma lama pada seri kartu grafis yang baru ini, atau meskipun ada namun tidak signifikan. Sehingga mau tidak mau kita percaya dengan pernyataan AMD tersebut. Bagaimanapun juga AMD layak diberikan penghargaan karena telah memungkinkan adanya angle-independent AF yang sebenar- benarnya.
Penutup
Ditilik dari fitur-fiturnya Cypress adalah produk kartu grafis DX11 ready yang pertama , dari sini saja keunggulan cypress langsung tampak. Belum lagi dengan eyefinity yang bisa menjadi nilai plus apabila kita cukup kaya untuk membeli 2 atau 5 buah monitor tambahan demi memainkan game dengan resolusi sangat tinggi, tinggal kita tunggu saja apakah fitur ini mampu bersaing dengan 3d vision NVIDIA untuk sementara ini sebelum AMD mengeluarkan solusi 3d nya sendiri. Dari segi kualitas gambar dengan hadirnya angle-independent AF tentu saja AMD sedikit berada di atas NVIDIA, ditambah lagi beberapa ftur yang tidak saya jelaskan satu persatu seperti kembalinya super sampling Anti aliasing (menggantikan MSAA tapi hanya untuk game DX9 dan openGL) ,tesselation (dari DX11), DirectCompute(dari DX 11) serta fitur DX11 lainnya meskipun agak lama baru bisa kita lihat implementasinya secara nyata pada aplikasi game kelak .
Untuk performa saya tidak bisa memberikan penilaian lebih banyak karena ini menjadi tugas reviewer kita besama. InsyaAllah dalam waktu dekat ini kita akan mengadakan pengujian atau test terhadap beberapa grafik card dari ATI dan nVidia.
Namun mungkin pula HD5870 akan menjadi GTX8800 yang baru, yang masih mampu bertahan selama hampir 3 tahun dalam hal performa seperti yang terjadi pada GTX8800 hingga saat ini. Keunggulan utama HD5000 masih seperti pendahulunya yaitu segi perbandingan price performancenya yang seimbang. Tidak overpriced dan kemungkinan kembali memaksa NVIDIA untuk menyesuaikan ulang pemberian harga produknya, terutama untuk HD5850 yang memiliki performa setara GTX285 namun lebih murah ($259 dibandingkan >$300). Kita hanya bisa menunggu seperti apakah serangan balasan dari Nvidia, apakah bisa lebih baik atau tidak.
Tapi hingga saat itu tiba Radeon HD5000 series akan tetap menjadi raja yang memuncaki tahta.Sedangkan nVidia akan menyerang dengan pasukannya yang baru yakni Fermi yang tidak lama lagi akan datang. Kita tunggu saja kehadirannya.

Disclosure Policy

This policy is valid from 24 July 2011


This blog is a personal blog written and edited by me. For questions about this blog, please contact daraouzza@yahoo.com.


This blog accepts forms of cash advertising, sponsorship, paid insertions or other forms of compensation.

The compensation received may influence the advertising content, topics or posts made in this blog. That content, advertising space or post may not always be identified as paid or sponsored content.

The owner(s) of this blog is compensated to provide opinion on products, services, websites and various other topics. Even though the owner(s) of this blog receives compensation for our posts or advertisements, we always give our honest opinions, findings, beliefs, or experiences on those topics or products. The views and opinions expressed on this blog are purely the bloggers' own. Any product claim, statistic, quote or other representation about a product or service should be verified with the manufacturer, provider or party in question.

This blog does contain content which might present a conflict of interest. This content may not always be identified.


To get your own policy, go to http://www.disclosurepolicy.org

Senin, 25 April 2011

Cara Kerja VGA ( GPU ) Modern

Graphics card kini bukanlah sekadar perangkat untuk bermain game di PC, tetapi juga sanggup mengolah video rosulusi tinggi, melakukan kalkulasi matematis rumit, dan menjalankan aplikasi 3D dengan kualitas video. Kemampuan graphics card terbaru yang diusung nVidia dan ATI (kini dimiliki AMD) cukup mengundang decak kagum. 
GPU terbaru nVidia, GT200, ditemui pada graphics card Geforce GTX 260 atau Geforce GTX 280. Adapun ATI, mengandalkan chip RV770 yang diimplan pada graphics card seri Radeon HD 4850 dan Radeon HD 4870. 
Pada artikel ini kita berniat menggali lebih dalam perihal kedua graphics chip terbaru ini dan menjelaskan apa yang dimaksud dengan istilah-istilah, seperti Shader, ROPs dan texture unit. Tidak itu saja, kita pun mencoba memaparkan bagaimana graphics carad bisa tangguh dibandingkan CPU pada proses kalkulasi tertentu.
Dasar : Struktur Graphics Card
Sebuah graphics card modern umumnya terdiri dari lima komponen, yaitu system interface, memori, graphics prosesor (GPU), frame buffer dan RAMDAC (Random Accsess Memory Digital / Analog Converter). System interface berkaitan langsung dengan motherboard. Saat ini, standarnya adalah PCI-Express, Raw data dimuat ke dalam graphics memory, yang berfungsi sebagai graphics objek dan texture memory. Umumnya, berkapasitas antara 256 MB dan 1.024 MB. Selanjutnya dara tersebut dibaca oleh Graphics Prosessor Unit (GPU) utuk melakukan kalkulasi terhadap semua posisi (koordinat), gerakan dan permukaan objek dari seuatu 3D scane. Hasilnya diperuntukkan untuk output gambar. Gambar yang telah selesai selanjutnya dikirim ke frame buffer. Dari sana, gambar dikirim lagi ke RAMDAC yang akan mengubah informasi digital menjadi output gambar analog untuk ditampilkan ke monitor VGA atau menajdi output digital untuk ditampilkan melalui interface DVI,HDMI, atau DisplayPort.
Graphics Pipeline:  Aliran Data 
Menjadi Gambar
Komponen-komponen dalam graphics card umumnya berfungsi pelengkap. Komponen terpenting pada graphics card hanyalah “otaknya”, yaitu graphics chip (GPU). Saat GPU menerima raw data,serangkaian proses panjang dimulai dan diakhiri dengan memunculkan gambar di monitor. Graphics Pipeline, yaitu channelling agar data dalam card sampai pada frame buffer, umumnya hampir sama pada semua graphics card yang ada saat ini.
Seluruh proses tersebut diulang untuk setiap gambar (frame). Agar dapat menghasilkan gerakan yang cepat, paling tidak diperlukan 25 frame per detik, sedangkan pada game PC diperlukan kecepatan 60 frame per detik agar tampilan lebih realistis. Bias dikatakan, GPU merupakan salah satu komponen yang “tersibuk” dalam PC.
Setelah data dikirim ke GPU melalui interface, langkah pertama proses pipeline-nya adalah mempersiapkan kalkulasi (pre-calculation) dan mengubah data dengan menggunakan sebuah pre-processor (setup Engine atau Input Assembler). Pre-processor ini mendeteksi jenis data, apakah berkaitan dengan vector,gambar,dank ode program, dan mempersiapkan raw data sehingga dapat diproses oleh modul yang tepat. Disini, ditentukan apakah raw data diproses oleh sebuah Vertex Shader,Geometry Shader,Pixel Shader, atau sebuah texture unit.
Setiap objek 3D terdiri atas berbagai triangle. Vertex Shader (Vertices adalah titik-titik sudut sebuah polygon) disuplai dengan koordinat-koordinat ini. segitiga-segitiga ini kemudian membentuk sebuah dunia 3D berdasarkan koordinat tersebut yang diselaraskan, di-scaling, atau di-distorsi sesuai dengan arah pandangan mata. Area pandangan yang diasumsikan ini disebut sebagai frustum. Setelah scane tersebut terbentuk,dilakukan pemeriksaan apakah sebuah objek harus terlihat atau tidak, berada di area frustum, dan apakah seluruh atau sebagian ditutupi oleh objek-objek.
Elemen yang tidak terlihat akan disingkirkan dari scane untuk menghindari proses kalkulasi yang tidak diperlukan. Proses ini disebut Frustum Culling. Apabila ditemukan sebuah objek terlalu jauh untuk dapat terlihat atau terlalu dekat menghadap ( membelakangi) penonton ( secara teoritis), maka proses ekuivalennya disebut sebagai clipping.
Proses Vertex Shader  yang terakhir adalah lighting. Disini, 3D scane akan diterangi oleh sumber cahaya ke dalam lingkungan (ruang) tersebut. Tanpa langkah ini, 3D scane terlihat gelap. Vertex Shader  hanya dapat memanipulasi objek, namun tidak dapat menghasilkan    elemen geometri baru, seperti titik, garis, dan segitiga. Bersamaan dengan hadirnya DirecX 10 pada November 2006 lalu, kini dikenal juga Geometry Shader. Geometry Shader dapat membuat bentuk geometri baru, sehingga, suatu pohon-pohon misalnya, dapat terlihat tumbuh atau hidup. Geometry Shader aktif setelah pembentukan 3D scane.
Apabila gambar yang akan dilihat penonton (viewer) sudah terbentuk dalam grid model dengan lighting source-nya,berarti prosesnya telah membuat sebuah foto dari scane tersebut dalam gambar 2D (dua dimensi) untuk ditampilkan di monitor. Proses ini dinamakan rastering atau rendering. Setiap titik sebuah objek 3D, yang selama ini hanya disimpan sebagai vector, akan diubah menjadi sebuah pixel. Langkah selanjutnya yang “menguras tenaga” adalah shading (shadowing) yang dilakukan oleh Pixel Shader. Pixel Shader akan memproses warna dan atribut yang diperlukan, seperti trasnparasi, pemantulan atau struktur dari masing-masing oixel. Hasilnya, objek 3D akan mendapat pewarnaan. 
Prinsipnya, sekarang gambar sudah jadi. Proses yang diperlukan hanyalah penyempurnaan malalui berbagai filter agar scane terlihat lebih realistis. Untuk itu tekstur, yaotu Bitmaps (gambar) yang sudah jadi, akan, akan diproyeksikan menjadi sebuah objek 3D (Texture Mapping). Dengan cara ini, dengan mudah dihasilkan gambar-gambar yang terlihat seperti foto minus fleksibelitas sebuah objek 3D. jadi pohon-pohon yang dibentuk oleh tekstur dapat terlihat bagus dari depan, namun terlihat datar saja dari samping. Anisotrophic filtering, yang juga ditem patkan dalam tekstur units, berfungsi agar teksture yang sudah terdistorsi secara perspektif dapat ditampilkan secara tajam dari kejahuan.
Setelah proses mapping pada texture unit selesai, frame akan diproses pada ROP unit (Raster Operation Processor). Pada ATI, unit ini disebut Element Render Back-End. Pada tahap restering, gambar terlihat lebih bagus. Misalnya, tepi-tepi yang miring ditampilkan menurut pixel sehingga terlihat seperti anak tangga. Namun masih tersedia fungsi Anti Aliasing, yang akan mendeteksi efek tepi tangga tersebut dalam gambar dan kemudian menghaluskannya.
Gambar yang sudah lengkap selanjutnya ditulis ke frame buffer dan berakhirlah proses graphics pipeline. Perbedaan teknis apa saja yang ditawarkan kedua produsen ini ,yakni dari nVidia dan ATI ?

GPU: Jantung Graphics Card 
Desain arsitektur GPU terbaru umumnya mengacu ke DirexX 10, yang merupakan kompilasi dari interface pemrograman untuk game-game berbasis Windows Vista  atau penerus dari vista (DirexX 11,12 dan seterusnya). Seperti yang telah dijelaskan pada bagian pipeline, desain chip sebelumnya membedakan antara shader (ALU,Arithmetic Logic Unit) yang bekerja sebagai Pixel Shader dan Vertex Shader.
DirexX 10 menetapkan sebuah model Shader baru yang disebut sebagai Unified Shader. Tergantung dari kebutuhannya. ALU dalam GPU dapat bekerja sebagai Pixel Shader, Vertex Shader  atau Geometry Shader. Saat ini, baik ATI maupun nVidia hamper semuanya memproduksi GPU yang mendukung DirexX 10. Dengan chip yang baru, efisiensi dari setiap Shader menjadi lebih baik. Agar raw data dapat dialokasikan dengan benar pada ALU yang belum terpakai, digunakan Thread Scheduler yang akan menganalisis, aliran data yang disiapkan oleh Set-up Engine, memparalelkannya dan mengalokasikan ALU untuk tugas yang sesuai.
Perbedaan antara GPU dari ATI dan nVidia terutama terletak pada struktur internalnya, yaitu arsitektur Unified Shader, yang juga disebut sebagai Stream Processors (SP). GPU dari nVidia diperkuat dengan 240 Stream Processors (SP), sedangkan AMD (ATI. ATI telah dibeli oleh AMD, maka ATI dan AMD menjadi satu perusahaan) malah mencapai 800 Stream Processors (SP). Perbedaan relative mudah diketauhi dengan melihat kemampuan dari Stream Processors ini. SP pada nVidia unidimensional dan sebagai scalar units (memproses sebuah komponen nilai merah, hijau,biru atau alpha), persiklus MADD (Multiplication and addition) untuk tugas-tugas Shading yang umum serta melakukan operasi dengan intruksi MUL (multiplikasi) untuk proses kalkulasi tambahan. Sebaliknya, Stream Processors (SP) pada ATI / AMD hanya dapat melakukan operasi dengan sebuah intruksi MADD. Agar kinerjanya sebanding,diperlukan gabungan 5 SP (untuk sebuah 5D vector unit) sehingga membentuk sebuah Shader Core dengan spectrum kinerja yang identik dengan sebuah Stream Processors pada nVidia GPU.
Namun,perbedaan keduanya tidak hanya terletak pada kemampuan masing-masing Stream Processors, melainkan juga pada alokasi dan pengelompokannya pada chip. ATI menggabungkan 5 SP dalam sebuah Shader Core. Jadi, dengan 800 SP terdapat 160 Shader Core. Pada ATI Radeon seri HD-4800,16 Shader Core membentuk sebuah SIMD (Single Intruction, Mulitple Data). Sebuah SIMD Core dapat menjalankan operasi hitung secara bersamaan untuk data dalama jumlah besar dalam sekali siklus, tetapi hanya untuk tugas identik saja. Setiap SIMD Core memiliki sebuah local memory sebesar 16 KB untuk pertukaran data yang cepat antara Stream Processors satu sama lain. Selain itu, untuk setiap Core (inti), terdapat sebuah Texture Cluster dengan 4 Texture Processor, sebuah decompressor, address unit, samples, filter unit, serta sebuah L1 Texture. Tiap Core berkomunikasi satu sama lain melaui data Request Bus dengan sebuah cache global yang berukuran 16 KB. Selain itu, chip ini menyimpan empat L2 Cache Block yang terhubung dengan memori utama dan bertukar data via Crossbar dengan SIMD Core. Aliran data yang diproses oleh Setup Engine, apakah menjadi sebuah program Vertex, Pixel atau Geometry, akan dibagi oleh Ultra Threaded Dispatch Processor (UTDP) dan akan mengoptimalkan efisiensi shader.
Stream Processors nVidia pada seri GT200 sedikit berbeda. Setiap delapan ALU membentuk sebuah Steaming Multiprocessor (SM), seperti pada ATI dengan cache 16 KB terpisah. Tiga dari 30 SM akan membentuk sebuah Texture Processing Cluster, termasuk 8 texture unit dan sebuah L1 Cache. Di sini, Cluster bekerja satu sama lain  berdasarkan MIMD (Multiple Intructions, Multiple Data). Dalam sebuah Clusters, arsitekture pada nVidia dikenal sebagai SIMT ( Single Instruction, Multiple Threads), sebuah modifikasi dari SIMD yang digunakan ATI dalam Cores mereka.
Dalam hal jumlah Stream Processors, ATI memang lebih unggul. Namun, nVidia lebih unggul dari segi Raster Operation Processor (ROPs). GT200 menawarkan 32 ROP unit, sedanhgkan ATI RV770 hanya 16 unit. Bahkan, interface memori dan built-in memori utama nVidia masih lebih baik. Dengan 512 bit, memori sebesar 1.024 MB pada sebuah GT200 menyediakan bandwidth yang lebih besar bagi GPU. Apapun ATI, hanya menyediakan bandwidth memori sebesar 256 bit dengan kapasitas memori video sebesar 512 MB. Oleh karena itu, ATI mengantisipasinya dengan pemakaian memori GDDR5 terbaru pada radeon HD 4870. memori ini menawarkan bandwidth dua kali lebih besar (4 Gbit/s  dan bukan 2 Gbit/s seperti dalam GDDR3) dengan konsumsi daya yang berkurang seperempatnya. Sementara nVidia, masih tetap mengandalkan memori GDDR3.

GPU: Melebihi CPU 
Kedua produsen tidak berfokus pada aspek 3D Graphics saja. ALu dalam GPU juga bisa diandalkan sebagai unit untuk memproses kalkulasi parallel. Pada tugas-tugas tertentu, misalnya simulasi data-data keuangan, kinerja graphics card bahkan 150 kali lebih cepat dari CPU. Kondisi ini dimungkinkan karena Shader fleksibelnya pada GPU terbaru yang dapat diprogram bebas. Dengan demikian, graphics chip-nya bisa dipakai sebagai General Purpose GPU ( GP GPU, Multi Purpose GPU).
Keuntungan performa yang diperoleh ternyata cukup besar. GT200 memiliki performa hingga 933 GFLOP (FLOP: Floating Point Operations Per Second), sedangkan RV770 bisa mencapai 1.200 GFLOP. Sebagai perbandingan, performa Core 2 Quad Q6600 hanya mencapai 21.4 GFLOP. Memang, tidak semua program dapat berjalan parallel sehingga sebuah CPU menjadi pilihan lebih baik untuk menyelesaikan tugas-tugas umum. Namun, untuk kalkulasi spesifik, misalnya simulasi, sebuah GPU bisa jauh lebih unggul dari kebannyakan CPU.
Selama ini, implementasi program yang seperti itu cukup sulit. Dengan CUDA (Compute Unified Device Architecture), nVidia menawarkan sebuah lingkungan pemrograman untuk bahasa C dqan C++. Dengan CUDA, dapat dikembangkan aplikasi dengan kemampuan kalkulasi parallel yang tinggi dan dijalankan pada GPU. ATI meluncurkan proyek yang sejenis dengan nama CTM (Close to the Metal). Namun,tanpa kenyataan dukungan pemrograman C++.
Namun, dibandingkan dengan sebuah CPU, sebuah GPU memiliki kekurangan terbesar. Floating Point (FP) number GPU hanya dapat diproses dengan akurasi satu kali, yaitu 32 bit. Proses yang rumit dengan intermediate data yang besar membutuhkan akurasi ganda, dalam hal ini 64 bit. ATI dan nVidia telah merespon tuntutan ini dan sedang berusaha agar GPU terbaru mereka juga menawarkan tingkat akurasi yang lebih untuk operasi Floating Point. Jadi, hai para produsen CPU, waspadalah dan sadarlah.!!

Sabtu, 23 April 2011

Kapitalisasi & Laju Degradasi Moral

Acap kali kita mengeluh serta mengumbar impian ketika motor milik kita mulai ketinggalan trend dan tersingkir oleh membanjirnya keluaran baru pabrikan otomotif Jepang, China, maupun India. Kemudian, pada saat mengendarai motor jadul kita ada ketidakpedean meruap, dan merasa berada di bawah tekanan lingkungan. Sadarkah kita bahwa pada prinsipnya kita sedang meng-kapitalisasi harga diri kita sendiri?
Hari ini harga diri dan nilai seseorang pribadi seakan memang hanya diukur berdasarkan kepemilikan barang serta besaran kapital yang ada pada dirinya. Hilang sudah kebernilaian diri karena sumber daya manusianya seperti intelektualitas, skill, keluhuran budi pekerti, kejujuran, maupun kesungguhan mengemban amanat. Faktanya, caleg yang terbukti korupsi juga masih bisa terpilih, pelaku kejahatan juga bisa terbebas dari vonis bersalah pengadilan, banyak ABG yang tidak segan meng-upload materi privasinya ke public.
Kapitalisme bertudung  globalisasi ataupun modernisasi yang berbasis kebudayaan Western menunjukkan gambaran melemahnya eksistensi religi dalam kehidupan suatu masyarakat. Globalisasi yang menjadi ujung tombak mewabahnya kapitalisme menerobos dimensi struktur kolektivitas masyarakat. Di satu sisi, bahkan hingga tingkat penyelenggaraan negara. Kapitalisme secara nyata berperan besar dalam penentuan kebijakan negara. Perspektif kapitalisme melahirkan pola kepemimpinan negara yang lebih berpihak pada kepentingan kelompok kaum kapitalis.
Kasus penyelewengan dana dalam kasus Bank Century yang menyeret oknum anggota DPR, oknum pejabat teras dalam kabinet pemerintahan, oknum di lingkungan kepolisian negara, hingga berakibat pada melemahnya lembaga benteng terakhir pemberantasan korupsi di Indonesia (KPK), menjadi gambaran kian merebaknya krisis kepercayaan pada masyarakat Indonesia. Tidak terlalu berlebihan apabila Yudi Chrisnandi (Indo Pos, 2007) telah menyebut masyarakat Indonesia sebagai distrust society.
Kapitalisme senantiasa menjadi dalang di balik kelindan ‘Opera Van Politik’ negara di seluruh penjuru dunia. Karakter kapitalisme yang eksploitatif mengemas imperialisme dalam retorika politik seperti pembangunan demokrasi, Hak Asasi Manusia (HAM). Kapitalisme secara vulgar berperan dalam proses perpolitikan suatu negara dengan senantiasa mengemas isu-isu krusial yang beraroma sosial sebagai wacana kemanusiaan universal. Isu-isu perdamaian, pembangunan ekonomi kerakyatan, penegakan demokrasi dan HAM menjadi menu sehari-sehari dari Benua Amerika hingga Benua Afrika dan Asia. Secara gamblang, gerakan ini berorientasi untuk membentuk opini publik agar menyokong ekspansi ekonomi.
Secara historis, kapitalisme merupakan ajaran yang didasarkan pada asumsi bahwa manusia makhluk yang tidak boleh dilanggar kemerdekaannya dan tidak perlu tunduk pada batasan-batasan sosial kolektivitas masyarakat. Kapitalisme merupakan konsep yang cenderung memberi ruang pada kepemilikan pribadi tanpa batasan. Sebaliknya, komunis merupakan ajaran yang berpijak pada pandangan bahwa masyarakat merupakan dasar dan individu tidak bisa memisahkan eksistensinya dari ruang sosial masyarakat. Dalam komunisme, pandangan ini diimplementasikan pada aksi menyerahkan kepemilikan individu pada negara (sebagai representasi masyarakat). Kedua ajaran ini memposisikan manusia sebagai individu yang kehilangan hak milik secara holistik. Baik kapitalisme maupun komunisme, pada hakekatnya, melakukan pengekspoitasian hak-hak pribadi melalui piranti kelembagaan negara. Kapitalisme menaungi sistem sosial yang menekankan kepentingan individu dan menganut sistem sentralisasi kepemilikan individu baik dalam kerangka organisasi atau negara. Kapitalisme memanfaatkan negara sebagai instrumen justifikasi “perampasan” kekayaan negara tanpa batas. Berbeda dengan komunisme, yang secara gamblang melakukan aksian penyerahan kepemilikan pada negara, pada kapitalisme penyerahan kepemilikan ini dikemas dalam retorika yang cenderung penuh kebohongan dan menyesatkan.
Dengan dalih demokrasi dan persamaan hak, kapitalisme menyembunyikan fakta bahwa kelompok yang memiliki kekuatan kapital memegang sumbu kekuasaan. Fakta bahwa banyak individu yang nir kapasitas dan rekam jejak yang berkualitas dapat menduduki posisi basah, tidak bisa dilepaskan dari kekuatannya dalam sektor kapital. Kegelisahan publik Indonesia pada susunan Kabinet Indonesia Bersatu (KIB) Jilid II yang sarat dengan koncoisme dan titipan asing patah oleh hegemoni media massa yang berdiri dalam lingkungan kapital tertentu.
Padahal kelindan politik antara ideologi, kapitalisme, komunisme, maupun agama dalam konteks negara acap kali berakhir pada konflik vertikal-horisontal pada masyarakat. Kutub-kutub ini senantiasa berkonfrontasi dalam proses pengambilan kebijakan negara, sebagai dalih argumentasi kepentingan ataupun pijakan mendasar kepentingan itu sendiri. Tak mengherankan apabila dalam pesta demokrasi kemarin beragam jargon seperti ‘Ekonomi kerakyatan’, ‘Neolib’, ‘Ekonomi Jalan Tengah’, atau pun ‘Yudhoyonomic’ menjadi materi perbincangan dari layar televisi hingga warung kopi.
Barangkali jika para pemimpin negeri gemah ripah loh jinawi ini bersedia untuk jujur, pastilah bersemayam kesadaran bahwa kapitalisme tidak berperikemanusiaan. Mengapa? Karena, kapitalisme terimplementasi dalam bentuk penghisapan hak-hak orang lain secara terorganisir dan sistematis, yang dilegitimasi dengan peraturan perundangan. Efeknya bagi paradigma individu, kapitalisme membentuk karakter manusia materialis, sekuleris, hedonis, eksklusif, dan narsistik. Ironisnya, negara justru memberikan ruang hidup bagi tumbuh kembangnya kapitalisme yang dikemas dalam modernisasi dan globalisasi. Akibatnya, kapitalisme memarginalkan posisi dan peran agama dalam diri individu maupun dalam konstruksi masyarakat. Realitanya, apabila anda orang tua anak gadis yang menerima pinangan, maka yang ada dalam benak kita tentang laki-laki peminang adalah apa pekerjaannya? berapa penghasilannya? merek apa motornya? Bukan pertanyaan seperti, benarkah masih perjaka? Atau bagi yang muslim, bisakah laki-laki ini mengaji? Atau bagaimana akhlaknya?
Sejujurnya, bagaimana posisi dan peran agama dalam proses kapitalisasi di Indonesia?
Dalam progresivitasnya, kapitalisme sukses menciptakan varian-varian penyakit sosial pada masyarakat serta menimbulkan perilaku sosial yang bertentangan dengan agama. Kejahatan sosial yang mengatasnamakan agama seringkali muncul dalam kehidupan masyarakat Indonesia dewasa ini yang mulai mengkultuskan kemajuan ilmu pengetahuan dan teknologi. Kepedean untuk membusungkan dada dan menjual belikan agama, ataupun melakukan aksi teror dengan dalih jihad ( tanpa dasar ilmu agama yang baik) merupan bukti konkret marjinalisasi agama. 
Akibatnya, masyarakat pun (dipaksa) menikmati imlikasi negatif yaitu proses dehumanisasi. Herannya, pergerakan manusia untuk lebih takluk pada kemajuan ilmu pengetahuan dan teknologi ketimbang agama didukung penuh oleh pemerintah dengan mengoptimalkan pendidikan sains dan ilmu eksakta daripada ilmu sosial dan agama.
Ashley Montague dan Floyd Matson pernah mengatakan bahwa dehumanisasi sama tuanya dengan Homo Sapiens (manusia), dan legenda mengenai kemunculannya menggambarkan masa-masa datangnya kejahatan di dunia. Dalam mitos-mitos dunia Barat, kondisi harmoni tiba-tiba diakhiri dengan sebuah krisis yang terjadi karena godaan ego yang menampakkan diri. Jean Jacques Rousseau menggambarkannya sebagai keadaan bahagia yang dihancurkan oleh datangnya peradaban yakni, industri, pertanian dan pelembagaan hak milik. Karl Marx, seorang Nabi Perjanjian Lama yang berubah menjadi humanis sekuler, mengajukan pendapat yang sama tetapi tidak begitu romantis. Marx memusatkan perhatian pada hak milik dan perbuatan kekuasaan melalui perjuangan kelas sebagai penjelasan ketidakmanusiaan manusia terhadap manusia. Melalui Marx (dan gurunya Hegel) konsep modern tentang alienasi diperdalam menjadi pusat perhatian teori sosial.
Konsep alienasi menjadi tema sentral ketika para cendekiawan Barat terutama para kaum intelektualis dan teknokrat memperbincangkan tentang proses krisis moralitas manusia yang mengharuskan mereka dicampakkan oleh Tuhan ke dunia. Kaum eksistensialis menilai bahwa manusia dilempar oleh Tuhan ke dunia karena manusia tidak mematuhi aturan moral agama. Ketika itu manusia mengalami kehilangan makna hidup dan tidak tahu kemana arah yang harus dituju. Sebagaimana berabad perjalanan untuk berjumpa antara Adam dan Hawa ketika pertama turun ke dunia.
Agama adalah sebuah ekspresi dari seluruh perilaku yang dimiliki oleh manusia. Maka, agama tidak diartikulasikan dalam perilaku secara eksplisit yang hanya berdimensi pada rasionalitas semata, seperti akal, perasaan, atau tindakan manusia yang sempit. Tetapi agama adalah sebuah sistem keyakinan yang filosofis transedental dan mencakup seluruh aspek kehidupan manusia termasuk konsep negara bangsa. Agama lahir dari sistem dialektika intelektual dan mengedepankan aspek akal semata. Kendatipun akal merupakan bagian yang tidak terpisahkan dari agama. Namun akal memiliki keterbatasan. Agama lahir melalui proses diskursus intelektual manusia dengan mengedepankan upaya de-idiologisasi agama, maka agama yang demikian hanya menjadi mitos globalisasi dengan mengagung-agungkan logika.
Kegagalan negara dalam mengantisipasi gerakan kapitalisme lantaran negara hanya bisa memproduksi perspektif manusia berjangka pendek (keduniawian) dan mengabaikan pandangan jangka panjang (akhirati). Sistem sosial yang dibangun kapitalisme berorientasi pada kebendaan dan manusia secara kodrati memiliki potensi itu. Sementara itu kemampuan mengendalikan diri dari potensi keduniaaan tidak berimbang karena peranan agama dalam negara yang lemah. Dan negara merupakan pusat produksi sistem sosial masyarakat yang tidak bisa memainkan peran agama dengan baik. Kalau demikian, maka bisa disimpulkan masa depan moralitas bangsa menjadi sangat gelap.
Strategi untuk mereduksi sistem kapitalisme yang telanjur mengkristal dalam perilaku sosial masyarakat ini adalah dengan kekuatan negara, karena negara merupakan pemegang kekuasaan. Dalam konteks itu, bangsa kita yang dikenal sebagai bangsa beradab. 
Konsep agama didasarkan pada keyakinan yang tidak memisahkan individu dari masyarakat dan tidak memandang sebagai dua kekuatan yang bertentangan antara satu sama lain. Kehidupan yang baik di dunia ini yang harus dibangun dan dipertahankan negara jelas mempunyai hubungan dengan tujuan yang lebih afdhal. Dengan semangat menjalankan konsep semua agama samawi, dapat membantu manusia dalam mencapai pemenuhan dunianya dengan menanamkan kebajikan moral. Konsep masyarakat demokratis dan egaliter berdasarkan semangat pluralisme. Agama memiliki sistem keseimbangan antara pandangan jangka pendek dan panjang demi kemaslahatan bangsa dan umat manusia.
Hal ini patut direnungkan bersama, untuk mencegah laju degradasi moralitas bangsa terutama generasi muda.