UltrafastSecp256k1/opencl/kernels
shrec 849c9df309
opencl+metal: wire bulletproof_verify_batch — close last parity gap
- opencl/kernels/secp256k1_zk.cl: remove #if 0 guard (881 lines of bulletproof
  code re-enabled); fix range_verify_full_impl address-space qualifiers:
  bp_G / bp_H now __global const AffinePoint*; per-iteration private copy
  (AffinePoint g_pt = bp_G[i]) before passing to scalar_mul_impl.

- gpu/src/gpu_backend_opencl.cpp: replace Unsupported stub with real dispatch
  via range_proof_poly_batch kernel; add bp_poly_batch_ member + cleanup;
  update ensure_zk_kernels() to register the new kernel; parse 324-byte
  wire format (4x65-byte uncompressed + 2x32-byte scalars) into
  RangeProofPolyOCL GPU layout.

- gpu/src/gpu_backend_metal.mm: replace Unsupported stub with real dispatch
  via range_proof_poly_batch kernel; build RangeProofPolyMetal (320B) from
  324-byte wire format using be32_to_metal_fe / be32_to_metal_scalar helpers.

- docs/BACKEND_ASSURANCE_MATRIX.md: bulletproof row stub->Y for OpenCL+Metal;
  parity tracking now shows zero remaining stubs.

- CHANGELOG.md: document bulletproof parity closure.

All three backends (CUDA, OpenCL, Metal) now implement bulletproof_verify_batch.
Zero Unsupported stubs remain in the GPU backend surface.
2026-03-24 21:59:56 +00:00
..
secp256k1_affine.cl security: OCL-H-03 branchless guard for P.x==Q.x in affine_add_impl 2026-03-24 00:02:25 +00:00
secp256k1_batch.cl Harden ABI and finish bindings validation 2026-03-23 02:30:44 +00:00
secp256k1_bip32.cl release: merge dev to main for release preparation (#147) 2026-03-16 03:40:00 +04:00
secp256k1_bip324.cl feat(gpu): BIP-324 parity — OpenCL + Metal ChaCha20-Poly1305 AEAD kernels 2026-03-22 12:23:12 +00:00
secp256k1_bip352.cl fix(opencl): apply unchecked ops to bip352.cl GLV loop + fix BENCH_N + update CUDA refs 2026-03-21 22:49:02 +00:00
secp256k1_bloom.cl release: merge dev to main for release preparation (#147) 2026-03-16 03:40:00 +04:00
secp256k1_bp_gen_table.cl release: merge dev to main for release preparation (#147) 2026-03-16 03:40:00 +04:00
secp256k1_ct_field.cl release: merge dev to main for release preparation (#147) 2026-03-16 03:40:00 +04:00
secp256k1_ct_ops.cl release: merge dev to main for release preparation (#147) 2026-03-16 03:40:00 +04:00
secp256k1_ct_point.cl release: merge dev to main for release preparation (#147) 2026-03-16 03:40:00 +04:00
secp256k1_ct_scalar.cl release: merge dev to main for release preparation (#147) 2026-03-16 03:40:00 +04:00
secp256k1_ct_sign.cl release: merge dev to main for release preparation (#147) 2026-03-16 03:40:00 +04:00
secp256k1_ct_zk.cl release: merge dev to main for release preparation (#147) 2026-03-16 03:40:00 +04:00
secp256k1_ecdh.cl release: merge dev to main for release preparation (#147) 2026-03-16 03:40:00 +04:00
secp256k1_extended.cl Harden ABI and finish bindings validation 2026-03-23 02:30:44 +00:00
secp256k1_field.cl Merge remote-tracking branch 'origin/release/v3.22.0' into dev 2026-03-21 14:14:49 +00:00
secp256k1_frost.cl fix(ci): resolve -Werror, MSan, and parity stub gaps 2026-03-22 02:37:51 +00:00
secp256k1_gen_table_w8.cl release: merge dev to main for release preparation (#147) 2026-03-16 03:40:00 +04:00
secp256k1_hash160.cl feat(gpu): CUDA/Metal/OpenCL extended crypto ops + GPU testing guide 2026-02-18 13:54:53 +04:00
secp256k1_keccak256.cl release: merge dev to main for release preparation (#147) 2026-03-16 03:40:00 +04:00
secp256k1_msm.cl release: merge dev to main for release preparation (#147) 2026-03-16 03:40:00 +04:00
secp256k1_pedersen.cl release: merge dev to main for release preparation (#147) 2026-03-16 03:40:00 +04:00
secp256k1_point.cl perf(opencl): replace generic kG with windowed w=4 precomputed table in scalar_mul_generator_impl 2026-03-22 14:45:22 +00:00
secp256k1_recovery.cl release: merge dev to main for release preparation (#147) 2026-03-16 03:40:00 +04:00
secp256k1_zk.cl opencl+metal: wire bulletproof_verify_batch — close last parity gap 2026-03-24 21:59:56 +00:00