Skip to content

Contributing FastFlag Verification Standard

TZ edited this page Aug 26, 2026 · 1 revision

Contributing: FastFlag Verification Standard

Standar verifikasi wajib sebelum FastFlag ditambahkan, diubah, atau dihapus di BoneFish.

Mengapa Standar Ini Ada

Sejak 2025-09-29 Roblox mengaktifkan FastFlag Allowlist. Flag yang tidak ada di allowlist diabaikan oleh client — bukti di log klien: "Denied local configuration". Menulis flag mati = kode mati + janji palsu ke user.

Kesalahan masa lalu yang dihindari standar ini:

  • DFIntTaskSchedulerTargetFps — dead flag, di luar allowlist (dibuang v7.2.7).
  • FFlagFastGPULightCulling3 / FFlagNewLightAttenuation — deprecated Sept 2025 (Night Vision dihapus v6.0.0).
  • Kombinasi MSAA=1 + FRM=3 + Texture=0 — flag "aman" tapi kombinasi-nya menyebabkan layar putih di iGPU tua (rombak v7.2.7).

Sumber Verifikasi

  1. DevForum Allowlist thread — pengumuman resmi allowlist (referensi devforum #3966569).
  2. Repo komunitas allowlistLeventGameing/allowlist (daftar flag yang diizinkan, terpantau update).
  3. Bukti runtime — log client: flag diterima (tidak ada "Denied local configuration") dan/atau efek teramati.

Karena sumber eksternal bisa berubah, SELALU cek ulang allowlist saat mengubah flag — jangan mengandalkan audit lama.

Kategori Audit

Kategori Arti Tindakan
Terverifikasi di allowlist & berfungsi Boleh dipakai
⚠️ Ada di allowlist tapi efeknya diragukan/tidak teramati Boleh dipakai dengan dokumentasi risiko
TIDAK di allowlist / dead / deprecated DILARANG — tidak boleh ditulis

Prosedur Wajib

  1. Cek allowlist untuk setiap flag baru (kedua sumber di atas, ambil yang terbaru).
  2. Catat bukti di komentar kode: sumber + tanggal verifikasi + kategori.
  3. Uji kombinasi — flag tunggal bisa aman tapi kombinasi-nya berbahaya (kasus layar-putih). Uji pada hardware target (terutama iGPU tua).
  4. Daftarkan flag di AllKnownManagedFlags — supaya PurgeAllKnownFlags() membersihkan nilai lama dari versi terpasang (pola migrasi otomatis).
  5. Dokumentasikan di wiki — halaman FastFlag Presets Explained harus ikut diperbarui.

Contoh Kasus Terverifikasi

  • Fast Loading (v6.0.0): 4 flag kandidat ditolak karena ❌ tidak di allowlist (FFlagEnableAsyncResourceLoading, FIntRenderChunkLODThreshold, FFlagEnableTextureStreamingFix, FIntPartSizeBoostThreshold); 2 flag dipakai (DFIntTextureCompositorActiveJobs, FIntRuntimeMaxNumOfThreads) dengan syarat jumlah core.
  • TDR Mitigation (v7.2.7): dari 4 flag kombinasi → hanya 1 (FIntDebugForceMSAASamples=1) setelah audit kasus layar-putih nyata.

Pull Request Checklist

  • Setiap flag: kategori ✅/⚠️/❌ + sumber + tanggal cek.
  • Flag baru terdaftar di AllKnownManagedFlags.
  • Kombinasi diuji (bukan hanya flag tunggal).
  • Wiki diperbarui bila perilaku preset berubah.
  • Tidak ada flag mati/dead yang ditulis ulang.