LINUX.ORG.RU
ФорумGames

Не изменяется яркость в играх

 , , , ,


0

2

Не изменяется яркость в крутых играх в пункте настройка яркости внутри игры вроде Team Fortress 2, Killing Floor. Драйвер свободный (xserver-xorg-video-ati), видюха ATI 6770. Дистро: Debian Jessie. Архитектура: amd64 (x86_64). Энвиронмент: XFCE4. Джунипер определяется (OPEN GL renderer: Gallium 0.4 on AMD JUNIPER), сами игры работают нормально. Поиск в интернете к желаемым ответам не привёл. Проприетарный драйвер не предлагать. Если средствами игры поменять нельзя, устроит скрипт-костыль, который будет менять яркость, а потом слушать, выполняется ли приложение, и, если перестало, возвращать обратно.

★★

Последнее исправление: CYB3R (всего исправлений: 3)

ЕМНИП то швабодный говно и регулировка яркости в нем поломана, причем уже давно.

Behem0th ★★★★★
()
Ответ на: комментарий от Tactile

Память мне говорит что я даже баг в багзилле видел, но найти я не могу. Подождем еще ответов, может я и путаю.

Behem0th ★★★★★
()
Ответ на: комментарий от pony

На мониторе и так максималки стоят.

Tactile ★★
() автор топика

Это, случайно, не та же проблема, из-за которой в ioquake3 и OpenArena изображение в игре по умолчанию слишком темное и лечится установкой r_ignorehwgamma в 1?

kravich ★★★★
()

Яркость меняется с помощью xrandr

aplay ★★★★★
()

Не изменяется яркость в играх

Прочитал как «не изменяется ярость в играх», причем 2 раза, и долго пытался понять, чего же хотел автор...

anonymous
()

теоретически можно добавить через галиумный постпроцес шейдер для увеличения яркости, и запускать как типа так
pp_br=1 progname
сейчас там есть управленеие цветом, и пару фильтров ч\б изображение можно сделать так
pp_nored=1 pp_nogreen=1 pp_noblue=1 progname

Novell-ch ★★★★★
()

Написал патчик, мож примут в апстим

diff --git src/gallium/auxiliary/postprocess/filters.h src/gallium/auxiliary/postprocess/filters.h
index 321f333..4423c2e 100644
--- src/gallium/auxiliary/postprocess/filters.h
+++ src/gallium/auxiliary/postprdiff --git src/gallium/auxiliary/postprocess/filters.h src/gallium/auxiliary/postprocess/filters.h
index 321f333..4423c2e 100644
--- src/gallium/auxiliary/postprocess/filters.h
+++ src/gallium/auxiliary/postprocess/filters.h
@@ -30,7 +30,7 @@
 
 #include "postprocess/postprocess.h"
 
-#define PP_FILTERS 6            /* Increment this if you add filters */
+#define PP_FILTERS 7            /* Increment this if you add filters */
 #define PP_MAX_PASSES 6
 
 
@@ -59,6 +59,7 @@ static const struct pp_filter_t pp_filters[PP_FILTERS] = {
    { "pp_celshade",		0,	2,	1,	pp_celshade_init,	pp_nocolor,               pp_celshade_free },
    { "pp_jimenezmlaa",		2,	5,	2,	pp_jimenezmlaa_init,	pp_jimenezmlaa,           pp_jimenezmlaa_free },
    { "pp_jimenezmlaa_color",	2,	5,	2,	pp_jimenezmlaa_init_color, pp_jimenezmlaa_color,  pp_jimenezmlaa_free },
+   { "pp_bright", 		0,	2,	1,	pp_bright_init,		pp_nocolor,               pp_nocolor_free },
 };
 
 #endif
diff --git src/gallium/auxiliary/postprocess/postprocess.h src/gallium/auxiliary/postprocess/postprocess.h
index c72f2c4..e43241e 100644
--- src/gallium/auxiliary/postprocess/postprocess.h
+++ src/gallium/auxiliary/postprocess/postprocess.h
@@ -78,6 +78,7 @@ bool pp_noblue_init(struct pp_queue_t *, unsigned int, unsigned int);
 bool pp_jimenezmlaa_init(struct pp_queue_t *, unsigned int, unsigned int);
 bool pp_jimenezmlaa_init_color(struct pp_queue_t *, unsigned int,
                                unsigned int);
+bool pp_bright_init(struct pp_queue_t *, unsigned int, unsigned int);
 
 /* The filter free functions */
 
diff --git src/gallium/auxiliary/postprocess/pp_colors.c src/gallium/auxiliary/postprocess/pp_colors.c
index 247e4df..9915bd1 100644
--- src/gallium/auxiliary/postprocess/pp_colors.c
+++ src/gallium/auxiliary/postprocess/pp_colors.c
@@ -87,6 +87,16 @@ pp_noblue_init(struct pp_queue_t *ppq, unsigned int n, unsigned int val)
    return (ppq->shaders[n][1] != NULL) ? TRUE : FALSE;
 }
 
+
+bool
+pp_bright_init(struct pp_queue_t *ppq, unsigned int n, unsigned int val)
+{
+   ppq->shaders[n][1] =
+      pp_tgsi_to_state(ppq->p->pipe, bright, false, "bright");
+
+   return (ppq->shaders[n][1] != NULL) ? TRUE : FALSE;
+}
+
 /* Free functions */
 void
 pp_nocolor_free(struct pp_queue_t *ppq, unsigned int n)
diff --git src/gallium/auxiliary/postprocess/pp_colors.h src/gallium/auxiliary/postprocess/pp_colors.h
index a79858e..66b9690 100644
--- src/gallium/auxiliary/postprocess/pp_colors.h
+++ src/gallium/auxiliary/postprocess/pp_colors.h
@@ -65,5 +65,20 @@ static const char noblue[] = "FRAG\n"
    "  1: MOV TEMP[0].z, IMM[0].xxxx\n"
    "  2: MOV OUT[0], TEMP[0]\n"
    "  3: END\n";
-
+ 
+ 
+static const char bright[] = "FRAG\n"
+  "PROPERTY FS_COLOR0_WRITES_ALL_CBUFS 1\n"
+  "DCL IN[0], GENERIC[0], PERSPECTIVE\n"
+  "DCL OUT[0], COLOR\n"
+  "DCL SAMP[0]\n"
+  "DCL TEMP[0..1]\n"
+  "IMM FLT32 {    0.0000,     1.5000,     0.0000,     0.0000}\n"
+  "  0: MOV TEMP[0].w, IMM[0].xxxx\n"
+  "  1: MOV TEMP[1].xy, IN[0].xyyy\n"
+  "  2: TEX TEMP[1].xyz, TEMP[1], SAMP[0], 2D\n"
+  "  3: MUL TEMP[0].xyz, TEMP[1].xyzz, IMM[0].yyyy\n"
+  "  4: MOV OUT[0], TEMP[0]\n"
+  "  5: END\n";
+ 
 #endif
diff --git src/gallium/state_trackers/dri/common/dri_screen.c src/gallium/state_trackers/dri/common/dri_screen.c
index 7a6dcb2..638bdf5 100644
--- src/gallium/state_trackers/dri/common/dri_screen.c
+++ src/gallium/state_trackers/dri/common/dri_screen.c
@@ -60,6 +60,7 @@ const __DRIconfigOptionsExtension gallium_config_options = {
          DRI_CONF_PP_NOBLUE(0)
          DRI_CONF_PP_JIMENEZMLAA(0, 0, 32)
          DRI_CONF_PP_JIMENEZMLAA_COLOR(0, 0, 32)
+         DRI_CONF_PP_BRIGHT(0)
       DRI_CONF_SECTION_END
 
       DRI_CONF_SECTION_DEBUG
diff --git src/mesa/drivers/dri/common/xmlpool/t_options.h src/mesa/drivers/dri/common/xmlpool/t_options.h
index 3bf804a..2997b35 100644
--- src/mesa/drivers/dri/common/xmlpool/t_options.h
+++ src/mesa/drivers/dri/common/xmlpool/t_options.h
@@ -195,6 +195,11 @@ DRI_CONF_OPT_BEGIN_V(pp_nored,enum,def,"0:1") \
         DRI_CONF_DESC(en,gettext("A post-processing filter to remove the red channel")) \
 DRI_CONF_OPT_END
 
+#define DRI_CONF_PP_BR(def) \
+DRI_CONF_OPT_BEGIN_V(pp_bright,enum,def,"0:1") \
+        DRI_CONF_DESC(en,gettext("A post-processing filter to adjust  brightness")) \
+DRI_CONF_OPT_END
+
 #define DRI_CONF_PP_NOGREEN(def) \
 DRI_CONF_OPT_BEGIN_V(pp_nogreen,enum,def,"0:1") \
         DRI_CONF_DESC(en,gettext("A post-processing filter to remove the green channel")) \

в итоге будет что-то типа такого http://www.gearsongallium.com/wp-content/uploads/2014/05/pp.png

запускать pp_bright=1 , работает только с на галиумных дровах

Novell-ch ★★★★★
()
Последнее исправление: Novell-ch (всего исправлений: 2)

xrandr перед игрой. Регулировка яркости сломана в иксах. А на проприентарных дровах меняется через свои костыли.

steemandlinux ★★★★★
()
Ответ на: комментарий от Novell-ch

Спасибо. Но есть пара вопросов: 1)А можно какое-то пояснение, что это такое проделывается? 2)Его из .sh можно запускать?

Tactile ★★
() автор топика
Ответ на: комментарий от Tactile

это патч, его нужно наложить на исходники месы, собрать ее и тогда указав pp_bright=1 как переменую окружения яркость в играх будет выше.
Патч лучше взять от сюда
http://lists.freedesktop.org/archives/mesa-dev/2014-May/060035.html

ну и походу в апстрим не возьмут, сказали лучше багу с яркостью починить, а она уже больше 4 лет висит в багтрекере
https://bugs.freedesktop.org/show_bug.cgi?id=27222

Novell-ch ★★★★★
()
Ответ на: комментарий от Novell-ch

А чо они там всё-таки 4 года делали? Неужели разработчики одного из много числа дистрибутивов не смогли этот баг исправить? Вот я знаю, что Red Hat разработала несколько утилит, одна из них дисковая. Debian Foundation адаптировала множество кривых программ под современную версию ядра, способствовав развитию софта для третьей серии ядра. В Cannonical написали патч для fontconfig, сделав шрифты в системе ещё более удобными для чтения, чем на масдае. Как насчёт более удобными, чем на Маках, я не знаю. Наверное, наравне. Вообще, в Линуксе можно сделать чёткий интерфейс. Почему в разных «модных» дистрибутивах разводят мыло, что всё плывёт - я не знаю. Сохранению зрения это не способствует, удобному восприятию тоже. Проприетарные дрова мыльце всё-таки добавляют в интерфейс. И стабильность пошатывают. И даже тестинг версия не должна падать просто так. У меня и не падает. Но поиграть после работы я хочу, и мне бы хотелось развития свободных дров. И вряд ли их интересует бабло. Насколько я знаю, сейчас ими занимается Пхороникс, а его спонсирует ВМваря. А у этих чуваков бабла куры не клюют. А у меня воообще всё шарп шарпом. Везде, где можно было убрать сглаживание - я уже убрал.

Tactile ★★
() автор топика
Ответ на: комментарий от Tactile

Но поиграть после работы я хочу

на это только десктоп с nvidia с проприетарным драйвером - всё остальное под линуксами сильно колется.

fornlr ★★★★★
()
Последнее исправление: fornlr (всего исправлений: 1)
Ответ на: комментарий от anonymous

А на сочетание клавиш её повесить реально?

Tactile ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.