logic 51 Опубликовано: 23 января, 2022 у меня есть патч для openOS(не суть) я хочу чтобы в качестве системного экрана и видеокарты он выбирал самое лутшее но как узнать уровень перед подключениям? в говову только перебор и случайный перебор приходит, а как по нормальномк незнаю Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ECS 1 904 Опубликовано: 23 января, 2022 local component = require("component") for address in component.list("gpu") do local gpu = component.proxy(address) local maxDepth = gpu.maxDepth() if maxDepth == 8 then -- Tier 3 elseif maxDepth == 4 then -- Tier 2 else -- Tier 1 end end 4 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 155 Опубликовано: 24 января, 2022 Также computer.getDeviceInfo() возвращает таблицу с параметрами всех подключенных устройств. Уровень можно узнать косвенно, ориентируясь, например, по параметру capacity. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
logic Автор вопроса 51 Опубликовано: 24 января, 2022 20 часов назад, ECS сказал: local component = require("component") for address in component.list("gpu") do local gpu = component.proxy(address) local maxDepth = gpu.maxDepth() if maxDepth == 8 then -- Tier 3 elseif maxDepth == 4 then -- Tier 2 else -- Tier 1 end end ДО подключения к экрану если gpu 3 будет у экрану 1 подключена то maxDepth будет 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
logic Автор вопроса 51 Опубликовано: 24 января, 2022 11 час назад, eu_tomat сказал: Также computer.getDeviceInfo() возвращает таблицу с параметрами всех подключенных устройств. Уровень можно узнать косвенно, ориентируясь, например, по параметру capacity. ок.... вот только интерестно что такой этот ваш capacity Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 155 Опубликовано: 24 января, 2022 2 минуты назад, rootmaster сказал: интерестно что такой этот ваш capacity Этот наш capacity, судя по выводимым значениям, сообщает размер текстового буфера, выраженный в символах. Произведение высоты и ширины. Но это моё интуитивное предположение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ECS 1 904 Опубликовано: 24 января, 2022 1 час назад, rootmaster сказал: ДО подключения к экрану если gpu 3 будет у экрану 1 подключена то maxDepth будет 1 Но... ты же сам хотел узнать уровень до подключения к экрану, а теперь ругаешься, что после подключения метод становится невалидным... 12 часа назад, eu_tomat сказал: Также computer.getDeviceInfo() возвращает таблицу с параметрами всех подключенных устройств. Уровень можно узнать косвенно, ориентируясь, например, по параметру capacity. Еще можно по параметру width. По названию не скажешь, но он как раз олицетворяет предельную глубину цвета для видеокарты. Пример на компьютере с 3 независимыми GPU всех 3 тиров и APU 2 тира, привязанного к экрану 1 тира: 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Taoshi 55 Опубликовано: 25 января, 2022 А разве по умолчанию не выбираются лучшая видеокарта и лучший экран? Или вас интересует 'лучший экран' по размерам в игре? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
whiskas 144 Опубликовано: 25 января, 2022 (изменено) 3 часа назад, Taoshi сказал: А разве по умолчанию не выбираются лучшая видеокарта и лучший экран? Или вас интересует 'лучший экран' по размерам в игре? Правда. Никогда еще не делал компютер первого или второго лв для программ. Только ради дюпа делал их ибо их быстрее скрафтить). Сейчас делаю ток серверные компы. Изменено 25 января, 2022 пользователем whiskas Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 25 января, 2022 4 часа назад, Taoshi сказал: А разве по умолчанию не выбираются лучшая видеокарта и лучший экран? Или вас интересует 'лучший экран' по размерам в игре? Руководство пишет: Component API назначает один из компонентов каждого типа «главным». Если блоков одного типа несколько, «главный» выбирается случайно. Я немного поэкспериментировав обнаружил, что из двух видеокарт главной выбирается та, которая вставлена в верхний слот, а из двух мониторов 1-го и 3-его уровней - выбирается первый. Хотя, не буду утверждать, что так бывает всегда. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Taoshi 55 Опубликовано: 25 января, 2022 Мда. На оцелота не удалось решить эту задачу. А вот в самой игре всё мгновенно встало на свои места. Сперва выбрал видеокарту по параметру freeMemory, затем подобрал монитор через bind(adress,true) и maxResolution. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Taoshi 55 Опубликовано: 25 января, 2022 Но теперь есть другой вопрос: как быть, если на каждый из экранов прилеплено по клавиатуре? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Taoshi 55 Опубликовано: 25 января, 2022 Вопрос про клавиатуру на каждом из мониторов мне решить с наскоку не удалось. А для ситуации 'клавиатура на лучшем мониторе', а карта самовыбралась не та' скидываю решение: local component=require('component') local gpus={} for addr in component.list('gpu') do gpus[#gpus+1]=addr end local scr={} for addr in component.list('scree') do scr[#scr+1]=addr end local memory=component.proxy(gpus[1]).totalMemory() local best=1 for n=1,#gpus do if memory<component.proxy(gpus[n]).totalMemory() then memory=component.proxy(gpus[n]).totalMemory() best=n end print(memory,n,component.proxy(gpus[n]).totalMemory()) --print(best) end bestscr=1 local max_res=0 for n=1,#scr do component.proxy(gpus[best]).bind(scr[n],true) if max_res<component.proxy(gpus[best]).maxResolution() then max_res=component.proxy(gpus[best]).maxResolution() bestscr=n end print('scr='..n..'bestscr='..bestscr) end component.proxy(gpus[best]).bind(scr[bestscr],true) --component.proxy(gpus).bind(scr,true) https://pastebin.com/mE3hGAm2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
у меня есть патч для openOS(не суть)
я хочу чтобы в качестве системного экрана и видеокарты он выбирал самое лутшее
но как узнать уровень перед подключениям?
в говову только перебор и случайный перебор приходит, а как по нормальномк незнаю
Поделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах