Skip to content

Commit

Permalink
Merge pull request #10214 from akallabeth/gfx-frame-ack
Browse files Browse the repository at this point in the history
Gfx frame ack
  • Loading branch information
akallabeth committed May 24, 2024
2 parents a046314 + f753ff8 commit 9e7c4db
Show file tree
Hide file tree
Showing 9 changed files with 50 additions and 9 deletions.
22 changes: 22 additions & 0 deletions .github/workflows/clang-tidy-post.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Post clang-tidy review comments

on:
workflow_run:
workflows: ["clang-tidy-review"]
types:
- completed

permissions:
pull-requests: write

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: ZedThree/clang-tidy-review/post@v0.19.0
# lgtm_comment_body, max_comments, and annotations need to be set on the posting workflow in a split setup
with:
lgtm_comment_body: ''
annotations: true
max_comments: 10
12 changes: 5 additions & 7 deletions .github/workflows/clang-tidy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,25 @@ on:
pull_request:
branches: [ master, stable* ]

permissions:
pull-requests: write

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
# Run clang-tidy
- uses: ZedThree/clang-tidy-review@v0.17.1
- uses: ZedThree/clang-tidy-review@v0.19.0
id: review
with:
split_workflow: true
clang_tidy_checks: ''
# List of packages to install
apt_packages: libkrb5-dev,libxkbcommon-dev,libxkbfile-dev,libx11-dev,libwayland-dev,libxrandr-dev,libxi-dev,libxrender-dev,libxext-dev,libxinerama-dev,libxfixes-dev,libxcursor-dev,libxv-dev,libxdamage-dev,libxtst-dev,libcups2-dev,libcairo2-dev,libpcsclite-dev,libasound2-dev,libswscale-dev,libpulse-dev,libavcodec-dev,libavutil-dev,libfuse3-dev,libswresample-dev,libusb-1.0-0-dev,libudev-dev,libdbus-glib-1-dev,libpam0g-dev,uuid-dev,libxml2-dev,libcjson-dev,libsdl2-2.0-0,libsdl2-dev,libsdl2-ttf-dev,libsdl2-image-dev,libsystemd-dev,libwebkit2gtk-4.0-dev,liburiparser-dev,libopus-dev,libwebp-dev,libjpeg-dev,libpng-dev,xsltproc,docbook-xsl,libgsm1-dev,libfaac-dev,libfaad-dev,libsoxr-dev,opencl-c-headers,opencl-headers,ocl-icd-opencl-dev,libssl-dev
apt_packages: libkrb5-dev,libxkbcommon-dev,libxkbfile-dev,libx11-dev,libwayland-dev,libxrandr-dev,libxi-dev,libxrender-dev,libxext-dev,libxinerama-dev,libxfixes-dev,libxcursor-dev,libxv-dev,libxdamage-dev,libxtst-dev,libcups2-dev,libcairo2-dev,libpcsclite-dev,libasound2-dev,libswscale-dev,libpulse-dev,libavcodec-dev,libavutil-dev,libfuse3-dev,libswresample-dev,libusb-1.0-0-dev,libudev-dev,libdbus-glib-1-dev,libpam0g-dev,uuid-dev,libxml2-dev,libcjson-dev,libsdl2-2.0-0,libsdl2-dev,libsdl2-ttf-dev,libsdl2-image-dev,libsystemd-dev,liburiparser-dev,libopus-dev,libwebp-dev,libjpeg-dev,libpng-dev,xsltproc,docbook-xsl,libgsm1-dev,libfaac-dev,libfaad-dev,libsoxr-dev,opencl-c-headers,opencl-headers,ocl-icd-opencl-dev,libssl-dev

# CMake command to run in order to generate compile_commands.json
build_dir: tidy
cmake_command: cmake -Btidy -S. -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DWITH_DEBUG_ALL=ON -DWITH_INTERNAL_MD4=ON -DWITH_INTERNAL_MD5=ON -DWITH_INTERNAL_RC4=ON -DBUILD_TESTING=ON -DWINPR_UTILS_IMAGE_JPEG=ON -DWINPR_UTILS_IMAGE_PNG=ON -DWINPR_UTILS_IMAGE_WEBP=ON -DWITH_BINARY_VERSIONING=ON -DWITH_CAIRO=ON -DWITH_DSP_EXPERIMENTAL=ON -DWITH_FAAC=ON -DWITH_FAAD2=ON -DWITH_FREERDP_DEPRECATED=ON -DWITH_FREERDP_DEPRECATED_COMMANDLINE=ON -DWITH_GSM=ON -DWITH_OPUS=ON -DWITH_PROXY_EMULATE_SMARTCARD=ON -DWITH_PULSE=ON -DWITH_SMARTCARD_INSPECT=ON -DWITH_SOXR=ON -DWITH_UNICODE_BUILTIN=ON -DWITH_VAAPI=ON -DWITH_WINPR_DEPRECATED=ON -DWITH_SDL_IMAGE_DIALOGS=ON -DWITH_PROFILER=ON -DWITH_OPENCL=ON -DCHANNEL_TSMF=ON
cmake_command: cmake -Btidy -S. -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DWITH_DEBUG_ALL=ON -DWITH_INTERNAL_MD4=ON -DWITH_INTERNAL_MD5=ON -DWITH_INTERNAL_RC4=ON -DBUILD_TESTING=ON -DWINPR_UTILS_IMAGE_JPEG=ON -DWINPR_UTILS_IMAGE_PNG=ON -DWINPR_UTILS_IMAGE_WEBP=ON -DWITH_BINARY_VERSIONING=ON -DWITH_CAIRO=ON -DWITH_DSP_EXPERIMENTAL=ON -DWITH_FAAC=ON -DWITH_FAAD2=ON -DWITH_FREERDP_DEPRECATED=ON -DWITH_FREERDP_DEPRECATED_COMMANDLINE=ON -DWITH_GSM=ON -DWITH_OPUS=ON -DWITH_PROXY_EMULATE_SMARTCARD=ON -DWITH_PULSE=ON -DWITH_SMARTCARD_INSPECT=ON -DWITH_SOXR=ON -DWITH_UNICODE_BUILTIN=ON -DWITH_VAAPI=ON -DWITH_WINPR_DEPRECATED=ON -DWITH_SDL_IMAGE_DIALOGS=ON -DWITH_PROFILER=ON -DWITH_OPENCL=ON -DCHANNEL_TSMF=ON -DWITH_WEBVIEW=OFF

# Uploads an artefact containing clang_fixes.json
- uses: ZedThree/clang-tidy-review/upload@v0.17.1
- uses: ZedThree/clang-tidy-review/upload@v0.19.0
id: upload-review
2 changes: 2 additions & 0 deletions channels/rdpgfx/client/rdpgfx_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -2341,6 +2341,8 @@ static UINT init_plugin_cb(GENERIC_DYNVC_PLUGIN* base, rdpContext* rcontext, rdp
return CHANNEL_RC_NO_MEMORY;
}

gfx->suspendFrameAcks =
freerdp_settings_get_bool(gfx->rdpcontext->settings, FreeRDP_GfxSuspendFrameAck);
gfx->MaxCacheSlots =
freerdp_settings_get_bool(gfx->rdpcontext->settings, FreeRDP_GfxSmallCache) ? 4096 : 25600;

Expand Down
9 changes: 9 additions & 0 deletions client/common/cmdline.c
Original file line number Diff line number Diff line change
Expand Up @@ -2245,6 +2245,15 @@ static int parse_gfx_options(rdpSettings* settings, const COMMAND_LINE_ARGUMENT_
rc = COMMAND_LINE_ERROR;
}
}
else if (option_starts_with("frame-ack", val))
{
const PARSE_ON_OFF_RESULT bval = parse_on_off_option(val);
if (bval == PARSE_FAIL)
rc = COMMAND_LINE_ERROR_UNEXPECTED_VALUE;
else if (!freerdp_settings_set_bool(settings, FreeRDP_GfxSuspendFrameAck,
bval != PARSE_OFF))
rc = COMMAND_LINE_ERROR;
}
}

if ((rc == CHANNEL_RC_OK) && codecSelected)
Expand Down
2 changes: 1 addition & 1 deletion client/common/cmdline.h
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ static const COMMAND_LINE_ARGUMENT_A global_cmd_args[] = {
{ "gfx", COMMAND_LINE_VALUE_OPTIONAL,
"[[progressive[:on|off]|RFX[:on|off]|AVC420[:on|off]AVC444[:on|off]],mask:<value>,small-"
"cache[:on|off],thin-client[:on|off],progressive[:on|"
"off]]",
"off],frame-ack[:on|off]]",
NULL, NULL, -1, NULL, "RDP8 graphics pipeline" },
#if defined(WITH_FREERDP_DEPRECATED_COMMANDLINE)
{ "gfx-h264", COMMAND_LINE_VALUE_OPTIONAL, "[[AVC420|AVC444],mask:<value>]", NULL, NULL, -1,
Expand Down
3 changes: 2 additions & 1 deletion include/freerdp/settings_types_private.h
Original file line number Diff line number Diff line change
Expand Up @@ -691,7 +691,8 @@ struct rdp_settings
SETTINGS_DEPRECATED(ALIGN64 BOOL GfxAVC444v2); /* 3847 */
SETTINGS_DEPRECATED(ALIGN64 UINT32 GfxCapsFilter); /* 3848 */
SETTINGS_DEPRECATED(ALIGN64 BOOL GfxPlanar); /* 3849 */
UINT64 padding3904[3904 - 3850]; /* 3850 */
SETTINGS_DEPRECATED(ALIGN64 BOOL GfxSuspendFrameAck); /* 3850 */
UINT64 padding3904[3904 - 3851]; /* 3851 */

/**
* Caches
Expand Down
7 changes: 7 additions & 0 deletions libfreerdp/common/settings_getters.c
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,9 @@ BOOL freerdp_settings_get_bool(const rdpSettings* settings, FreeRDP_Settings_Key
case FreeRDP_GfxSmallCache:
return settings->GfxSmallCache;

case FreeRDP_GfxSuspendFrameAck:
return settings->GfxSuspendFrameAck;

case FreeRDP_GfxThinClient:
return settings->GfxThinClient;

Expand Down Expand Up @@ -969,6 +972,10 @@ BOOL freerdp_settings_set_bool(rdpSettings* settings, FreeRDP_Settings_Keys_Bool
settings->GfxSmallCache = cnv.c;
break;

case FreeRDP_GfxSuspendFrameAck:
settings->GfxSuspendFrameAck = cnv.c;
break;

case FreeRDP_GfxThinClient:
settings->GfxThinClient = cnv.c;
break;
Expand Down
1 change: 1 addition & 0 deletions libfreerdp/common/settings_str.h
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ static const struct settings_str_entry settings_map[] = {
{ FreeRDP_GfxProgressiveV2, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_GfxProgressiveV2" },
{ FreeRDP_GfxSendQoeAck, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_GfxSendQoeAck" },
{ FreeRDP_GfxSmallCache, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_GfxSmallCache" },
{ FreeRDP_GfxSuspendFrameAck, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_GfxSuspendFrameAck" },
{ FreeRDP_GfxThinClient, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_GfxThinClient" },
{ FreeRDP_GrabKeyboard, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_GrabKeyboard" },
{ FreeRDP_GrabMouse, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_GrabMouse" },
Expand Down
1 change: 1 addition & 0 deletions libfreerdp/core/test/settings_property_lists.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ static const size_t bool_list_indices[] = {
FreeRDP_GfxProgressiveV2,
FreeRDP_GfxSendQoeAck,
FreeRDP_GfxSmallCache,
FreeRDP_GfxSuspendFrameAck,
FreeRDP_GfxThinClient,
FreeRDP_GrabKeyboard,
FreeRDP_GrabMouse,
Expand Down

0 comments on commit 9e7c4db

Please sign in to comment.