
Basemark Web: Benchmark GPU Langsung di Browser
Basemark Web Benchmark adalah salah satu alat pengujian performa browser paling populer. Tool ini banyak digunakan oleh media teknologi dan pengembang untuk mengukur performa rendering 2D/3D, kecepatan JavaScript, serta efisiensi engine browser modern.
Kalau dilihat sekilas, tampilannya tampak seperti benchmark GPU modern. Tapi setelah kita lihat lebih dalam melalui DevTools dan file JavaScript yang diload, ternyata engine Basemark Web sepenuhnya berbasis WebGL, bahkan belum menyentuh WebGPU sama sekali.
Suite Lengkap yang Dijalankan Basemark
Saat tombol “Run Benchmark” ditekan, situs ini memanggil puluhan file JavaScript modular. Daftarnya mencakup:
core_suite/
— berisi tes bitwise, operasi built-in JavaScript, dan evaluasi kinerja umum CPU.graphics_suite/
— kumpulan tes GPU berbasis WebGL seperti geometry stress test, draw-call test, shader pipeline test, dan WebGL 2.0 test.generic_suite/
— tes terhadap framework seperti AngularJS, Backbone.js, dan jQuery.conformance_suite/
— memverifikasi kemampuan resize, event, dan DOM performance.
List javascript module yang tertangkap adalah sebagai berikut:
🔍 Lihat daftar lengkap file JS Basemark
Struktur file-nya terorganisir dengan baik dan modular, memungkinkan Basemark menjalankan banyak jenis pengujian sekaligus dari satu interface web.
Engine Grafis: WebGL + Three.js
Core engine grafis Basemark ada pada file GraphicsTestBase.js
, yang di dalam komentarnya langsung menyebut dirinya sebagai “Base class for WebGL tests”. Di dalamnya digunakan library Three.js untuk mengelola kamera, texture, shader, dan pipeline rendering.
Beberapa bagian kodenya terlihat seperti ini:
this.offScreenTex = new THREE.WebGLRenderTarget(width, height);
this.renderer.render(this.scene, this.camera, this.renderTarget, true);
forceGLFlush(this.renderer.getContext());
Shader yang digunakan juga masih berbasis GLSL (OpenGL Shading Language), bukan WGSL
milik WebGPU. Bahkan ada fungsi forceGLFlush()
yang memanggil gl.readPixels()
— cara klasik memastikan perintah GPU terselesaikan sebelum hasilnya diukur.
Selain itu, Basemark juga memuat three.min.js
, ColladaLoader.js
, dan berbagai shader pasca-proses (bloom, depth-of-field, deferred shading) — menandakan bahwa benchmark ini menguji pipeline grafis kompleks berbasis WebGL 1.0/2.0.
Mereka Menggunakan WebGL 1.0 dan 2.0, Bukan WebGPU
Hasil pemeriksaan pada file BasemarkWebEngine.js
menunjukkan pemanggilan:
gl = e.getContext("webgl") || e.getContext("experimental-webgl");
dan tidak ditemukan satupun referensi ke navigator.gpu
atau requestAdapter()
. Artinya, Basemark Web saat ini memang masih sepenuhnya menggunakan WebGL.
Hal ini juga sejalan dengan informasi resmi dari Basemark Oy dan Tom’s Hardware yang menyebut bahwa Basemark Web 3.0 “utilizes WebGL 2.0 to measure graphical performance.”
Pelajaran dari Basemark untuk Era WebGPU
Meski belum menggunakan WebGPU, Basemark memberikan banyak insight berharga untuk kita yang ingin membangun benchmark GPU modern:
- Gunakan arsitektur modular: pisahkan antara engine dan test suite.
- Kelola rendering di offscreen texture sebelum ditampilkan ke layar.
- Pastikan setiap test punya waktu eksekusi dan skor terukur.
- Sertakan variasi workload: geometry, shader pipeline, draw-call, dan physics.
Semua konsep ini masih relevan, bahkan untuk WebGPU. Bedanya, nanti compute shader dan pipeline encoding bisa dilakukan langsung melalui API GPU tanpa lapisan abstraksi WebGL.
Dari WebGL Menuju WebGPU
Dengan mengetahui arsitektur Basemark, kita jadi bisa memetakan perbedaan besar antara WebGL dan WebGPU:
Aspek | WebGL (Basemark) | WebGPU (Modern) |
---|---|---|
Shader Language | GLSL | WGSL (WebGPU Shading Language) |
Renderer API | Three.js + WebGL context | Native GPU device queue |
Pipeline | Implicit (driver-managed) | Explicit (developer-managed) |
Compute Capability | Terbatas | Full compute shader |
Jadi, walau Basemark Web masih berbasis WebGL, struktur modularnya sudah sangat mirip dengan konsep pipeline architecture di WebGPU — hanya beda di tingkat kontrol API-nya.
Kesimpulan
Basemark Web bukan benchmark WebGPU, tapi justru contoh sempurna bagaimana benchmark generasi lama dibangun secara disiplin di atas WebGL dan Three.js. Dari situ kita bisa belajar banyak tentang rendering pipeline, arsitektur modular, dan teknik pengukuran performa GPU di browser.
Di Part 3 nanti, kita akan mulai membangun Geometry Stress Test WebGPU, menggunakan shader WGSL
dan rendering pipeline modern. Stay tuned!
Catatan: Basemark Web Benchmark adalah produk resmi milik Basemark Oy. Analisis ini bersifat edukatif dan tidak berafiliasi dengan mereka.
Leave a Reply