Commit Graph

16 Commits

Author SHA1 Message Date
Kristian Ollikainen
3df53e7e38 🐛 fix(base): Device selection patch for gpu-screen-recorder (#93)
## Description

Adds new `-device` argument for gpu-screen-recorder which allows
specifying a GPU to use (by `/dev/dri/cardN` path)

This fixes an issue with multi-gpu systems when device such as
`/dev/dri/card1` is passed through but gpu-screen-recorder will still
try to access `/dev/dri/card0` for capturing and failing.

Added relevant bits to `gpu_helpers.sh` to find the card path - I assume
all modern modesetting drivers will have a `/drm/` path that tells the
card number. If not, the script will fall back to gpu-screen-recorder's
own method of finding the card.

Edit: Forgot to mention patches are now copied to /tmp/ rather than
/etc/

Co-authored-by: Kristian Ollikainen <DatCaptainHorse@users.noreply.github.com>
2024-07-07 12:43:58 +03:00
Kristian Ollikainen
cf69f6c93a feat(server): Add Intel/AMD GPU support (#84)
## Description

### This is a DRAFT - Changes will be discussed and made upon requests!

In nutshell, this adds support for running Nestri with Intel and AMD
GPU's. Both integrated and dedicated.

It took a few days to find a trick for having output without dummy plugs
or connected displays, but I think I got it.

`gpu-screen-recorder` requires a custom patch to skip the check for
connected displays (as we're using a xrandr workaround which makes them
stay "unconnected")

Most likely fixes #68

### Changes

The NVIDIA sections have been split in their own code branches since
there's some NVIDIA specific things I didn't feel approriate to poke
more than necessary for the goal of this PR.

Added a script with helper functions related to GPU discovery and
gathering some basic info off from them (note: it might be better to
declare the helper script arrays outside it's initially run function).
The helper scripts rely on `lshw`.

NVIDIA code was slightly adjusted to use the bus-id's provided by the
helper functions to have some code re-use.

Cleaned up few things on the side.

---------

Co-authored-by: Kristian Ollikainen <DatCaptainHorse@users.noreply.github.com>
Co-authored-by: Wanjohi <71614375+wanjohiryan@users.noreply.github.com>
2024-07-07 11:06:48 +03:00
Wanjohi
5c9cb8e563 🐛 fix: Rename netris to nestri (#78)
## Description

**What issue are you solving (or what feature are you adding) and how
are you doing it?**

This PR is the first in a series of PRs trying to solve the issue #48 by
renaming `Netris` to `Nestri` to avoid Trademark legal issues.
2024-06-06 00:27:40 +03:00
Wanjohi
674124e819 🐛 fix(server): Final touches (#66)
## Description

**What issue are you solving (or what feature are you adding) and how
are you doing it?**

This is a catch all PR that tries to smooth out the creases found while
playing using Netris.
What i have found so far:
1. Change `NAME` environment to `SESSION_ID` for warp server.
2. Run `entrypoint.sh` and `warp-input` as user `netris`
3. Netris-proton is broken, it quits prematurely. I think it has to be a
problem with a missing wine installation
2024-05-30 01:53:07 +03:00
Wanjohi
e6fa6ea6e1 🐛 fix(server): Support the Open Kernel Module (#62)
## Description

**What issue are you solving (or what feature are you adding) and how
are you doing it?**

Currently, the container fails when trying to download drivers for a
container running non-proprietary Nvidia drivers. So, this is a fix
which searches for numbers rather than a fixed point in the string.
2024-05-25 00:07:27 +03:00
Wanjohi
ea157b4898 feat(server): Rename /netris/proton to netris-proton (#61)
## Description

**What issue are you solving (or what feature are you adding) and how
are you doing it?**

With help from @djpremier, rename `/usr/bin/netris/proton` as "the
script cannot be found in bash `(eg.: $ proton -r /games/AlanWake.exe)`
if it is in the subdirectory of /usr/bin, probably because it is found
in a subdir inside `/usr/bin` "
2024-05-25 00:02:36 +03:00
Wanjohi
593ab09195 🐛 fix(server): Run input-server as root to get permissions to create … (#30)
…devices

## Description

**What(what issue does this code solve/what feature does it add):**
Currently we get a permission error when trying to create a mouse.

On further investigation, we realise that we have to run
`/inputtino/input-server` as sudo/root.

**How(how does it solve it):**

## Required Checklist:

- [ ] I have added any necessary documentation and comments in my code
(where appropriate)
- [ ] I have added tests to make sure my code runs in all contexts

## Further comments
2024-04-22 17:28:09 +03:00
Wanjohi
c7cb295628 feat(server): Add keyboard and mouse input (#27)
## Description

**What(what issue does this code solve/what feature does it add):**
We need to support feedback for mouse and keyboard.

**How(how does it solve it):**

## Required Checklist:

- [ ] I have added any necessary documentation and comments in my code
(where appropriate)
- [ ] I have added tests to make sure my code runs in all contexts

## Further comments
2024-04-22 12:53:46 +03:00
Wanjohi
408a627c08 feat: Capture screen and send with warp (#26)
## Description

**What(what issue does this code solve/what feature does it add):**

**How(how does it solve it):**

## Required Checklist:

- [ ] I have added any necessary documentation and comments in my code
(where appropriate)
- [ ] I have added tests to make sure my code runs in all contexts

## Further comments
2024-04-20 01:23:05 +03:00
Wanjohi
993d8238a3 🐛 fix(scripts): fix entrypoint.sh crashes 2024-04-16 03:50:03 +03:00
Wanjohi
2fc7d24fee 🐛 fix(base): Add xcvt 2024-04-16 03:16:39 +03:00
Wanjohi
c2c3590b0c 🐛 fix: Change default user to ubuntu 2024-04-16 02:13:12 +03:00
Wanjohi
66f7ba200f 🐛 fix(server): Test out in the wild (#20)
## Description

**What(what issue does this code solve/what feature does it add):**

**How(how does it solve it):**

## Required Checklist:

- [ ] I have added any necessary documentation and comments in my code
(where appropriate)
- [ ] I have added tests to make sure my code runs in all contexts

## Further comments
2024-04-16 01:49:06 +03:00
Wanjohi
e7f5666d7a feat: Merge recorder and ffmpeg to base (#21)
## Description

**What(what issue does this code solve/what feature does it add):**
We do not need the ffmpeg and recorder all sitting differently, as this
will increase our docker image size
**How(how does it solve it):**

## Required Checklist:

- [ ] I have added any necessary documentation and comments in my code
(where appropriate)
- [ ] I have added tests to make sure my code runs in all contexts

## Further comments
2024-04-15 10:40:03 +03:00
Wanjohi
1d714b5019 🐛 fix(server): Add CAP_SYS* capabilities to the gpu-screen-recorder (#13)
## Description

**What(what issue does this code solve/what feature does it add):**

**How(how does it solve it):**

## Required Checklist:

- [ ] I have added any necessary documentation and comments in my code
(where appropriate)
- [ ] I have added tests to make sure my code runs in all contexts

## Further comments
2024-04-04 01:26:14 +03:00
Wanjohi
b381e44b96 feat(server): Add pulseaudio to capture sound (#10)
## Description

**What(what issue does this code solve/what feature does it add):**
We do not have a way to capture sound inside the container.
**How(how does it solve it):**
1. Install pulseaudio inside the container
2. Add an entrypoint.sh where we start the pulseaudio
## Required Checklist:

- [ ] I have added any necessary documentation and comments in my code
(where appropriate)
- [ ] I have added tests to make sure my code runs in all contexts

## Further comments
2024-04-04 00:32:17 +03:00