actions / runner

The Runner for GitHub Actions :rocket:
https://github.com/features/actions
MIT License
4.76k stars 927 forks source link

Canvas or WebGL application very slow on runners #2229

Open gromanas opened 1 year ago

gromanas commented 1 year ago

Describe the bug I am working for a software industry where we create canvas and WebGL games. We have created some functional tests for those games. We have tried using ubuntu, mac runners, and also have access to select a runner with better hardware specs, also we have self-hosted runners, but the issue still remains. On chrome browser, the games are very slow and even miss some animations that are happening. On chrome 99 and below the game is slow but is playable. On chrome 100 and above the game is very very slow. We have calculated that the FPS is approximately 2-10.

To Reproduce Steps to reproduce the behavior:

  1. A canvas/WebGL application should
  2. Try to play a game on chrome browser version higher than 100.0.0

Expected behavior The game should be played at an acceptable FPS rate (above 15).

Runner Version and Platform

ubuntu-latest, mac-latest, and also the self-hosted that are 4 cores and 16gb ram.

OS of the machine running the runner? Linux (ubuntu), macOS (mac)

ruvceskistefan commented 1 year ago

Hey @gromanas,

Thank you for reporting this issue. Can you please tell me, are you running your workflow in a container? Can you provide an example workflow, so we can reproduce this bug?

gromanas commented 1 year ago

Hello @ruvceskistefan,

Thank you very much. A sample of the workflow is:

name: Functional Tests

on:
  push:
    branches: [ main ]
    paths-ignore:
      - '**.md'
      - '.eslintignore'
      - '.eslintrc.json'
      - '.github/**'

  pull_request:
    types:
      - opened
      - edited
      - reopened
      - synchronize
    paths-ignore:
      - '**.md'
      - '.eslintignore'
      - '.eslintrc.json'

jobs:
  functional-test:
    if: ${{ !startsWith(github.event.pull_request.title, '[skip-ci]') }}
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        func_suite: [ suite1, suite2, suite3, suite4, suite5 ]

    steps:
      - name: ๐Ÿ›Ž๏ธ  Checkout
        uses: actions/checkout@v2
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          persist-credentials: false

      - name: ๐Ÿชข  Install Tesseract OCR
        run: |
          sudo add-apt-repository -y ppa:alex-p/tesseract-ocr5
          sudo apt update
          sudo apt install -y tesseract-ocr
          tesseract -v

      - name: ๐Ÿงถ  NodeJS setup
        uses: actions/setup-node@v1
        with:
          node-version: "14.18.1"

      - name: ๐Ÿฆš Cache dependencies
        id: cache
        uses: pat-s/always-upload-cache@v3
        with:
          path: ./node_modules
          key: modules-${{ hashFiles('package-lock.json') }}

      - name: ๐Ÿ”ง  Install dependencies
        if: steps.cache.outputs.cache-hit != 'true'
        run: npm ci

      - name: ๐Ÿ—๏ธ  Start Game and Selenoid
        run: npm run infra:up

      - name: ๐Ÿบ  Verify Game is Running
        run: sh ./ci/scripts/wait-for-app-to-run.sh

      - name: ๐Ÿš€  Run Functional Tests
        run: npm run test:selenoid-func-web -- --suite ${{ matrix.func_suite }}

      - name: ๐ŸŒ‹  Upload Image Diffs
        if: always()
        uses: actions/upload-artifact@v2.2.1
        with:
          name: "image-diffs-${{ matrix.func_suite }}"
          path: .tmp
          retention-days: 5

      - name: ๐Ÿ”๏ธ  Upload Functional Test report
        if: always()
        uses: actions/upload-artifact@v2.2.1
        with:
          name: "func-tests-report-${{ matrix.func_suite }}"
          path: reports
          retention-days: 5
ruvceskistefan commented 1 year ago

@gromanas Thank you for providing example workflow, we will investigate your request and get back to you as soon as we have more information.

github-actions[bot] commented 9 months ago

This issue is stale because it has been open 365 days with no activity. Remove stale label or comment or this will be closed in 15 days.