google / google/filament

tvOS support (appletvos + appletvsimulator)

Open
#10,339 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
20.5k
Forks
2.3k
Avg merge
2d 13h
Merged PRs (30d)
90

Description

I have tvOS working on top of `v1.75.0` and would like to know whether you want it upstream before I open a PR.

Branch: https://github.com/tim4724/filament/tree/tvos-v1.75.0 — 6 commits, ~250 added lines across 15 files, no new backend. A work-in-progress game runs on an Apple TV 4K (A10X) at 3840x2160, 60 fps.

What it took: `build.sh -p tvos` plus toolchain and CMake plumbing (Metal forced on, since CocoaTouchGL isn't ported); availability guards and tvOS-prohibited API exclusions in `MetalContext.mm`, `MetalHandles.mm` and `MetalState.mm`; and `backend_test` building and running again on iOS/tvOS, behind `INSTALL_BACKEND_TEST`.

The branch also adds a presubmit `build-tvos` job. Per `CONTRIBUTING.md` that one is yours rather than mine, so I would drop `.github/` from any PR.

Three things I would want your call on:

- Deployment target: the branch floors at tvOS 17.0.
- tvOS in the released XCFrameworks, or build-from-source only?
- `backend_test` on tvOS: opt-in, or wired into presubmit?

Happy to split it. The Metal availability fixes stand alone from the build work.

This issue and the branch were prepared with Claude Code.

Contributor guide

Open the contributing guide

Research direction

Start with the linked tvos-v1.75.0 branch and run build.sh -p tvos; review its toolchain and CMake changes, plus the availability guards in MetalContext.mm, MetalHandles.mm, and MetalState.mm. Check backend_test and INSTALL_BACKEND_TEST, then resolve the deployment target, XCFramework, and presubmit decisions. Done means an agreed scope with documented build, test, and release behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake, cpp, github-actions
Domain
build-system, ci-cd, testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.