Куча говна / Говнокод #14325 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
// bormand: Ну что, затестим шейдер в WebGL...
int iter = 0;
while (iter < 1000 && length(z) < 2.0) {
    z = vec2(z.x * z.x - z.y * z.y, 2.0 * z.x * z.y) + c;
    iter++;
}
// compileShader: 'while' : This type of loop is not allowed

// bormand: WTF?! В обычном OpenGL же работало, ну ок...
int iter = 0;
for (; iter < 1000; iter++) {
    if (length(z) < 2.0)
        break;
    z = vec2(z.x * z.x - z.y * z.y, 2.0 * z.x * z.y) + c;
}
// compileShader: 'for' : Missing init declaration

// bormand: Да что за херня!?
for (iter = 0; iter < 1000; iter++) {
// compileShader: 'for' : Invalid init declaration

// bormand: Подавись, сука!
int iters = -1;
for (int iter = 0; iter < 1000; iter++) {
    if (length(z) < 2.0) {
        iters = iter;
        break;
    }
    z = vec2(z.x * z.x - z.y * z.y, 2.0 * z.x * z.y) + c;
}
// compileShader: ok.

bormand vs WebGL

Запостил: bormand bormand, (Updated )

Комментарии (159) RSS

    • Скорее всего чтобы шейдеры не зависали. Гарантия остановки.
      Ответить
    • > епрст. спрашивается, схуяли
      Динамик бранчинг требует. Для шрейдеров может не поддерживаться. Запроси капасити. Ну и версию шейдеров попробуй другую указать. Помни, что шрейдеры - не кресты и более ограничены. В том числе и драйвером и видяхой
      Ответить
      • Ну что, запустил я while (true) на шейдерах (обычный OpenGL это позволяет)... Только что из ребута вернулся, видюха повисла намертво 😉

        Так что правильно сделали, что запретили. Для WebGL это страшенная дыра - можно удаленно вешать компы, подсунув ссылку с таким шейдером.

        UPD: Там еще и число итераций в for'е ограничили до 65535.
        Ответить
          • Не виснет. Комп жутко лагает, но секунд через 5 все-таки удается переключить или закрыть вкладку. Хотя я попробовал всего 2 цикла... но мне не хочется в перезагрузку, перед сном попробую.
            Ответить
  • Парни, заходите на мой сайт. У меня там красивое порно. Пока будете смотреть - я буду майнить биткойны.
    Ответить
    • А я гадал, почему Гуглоплюс и проекты mail.ru после смены дизайна так тормозят...
      Ответить
    • Ну а что, годная монетизация сайта же. И клиенты довольны будут, ибо рекламы не будет, а видюха все равно обычно простаивает.
      Ответить
      • кстати, на каких бровсерах уже разрешили вебджл (не нужно лезть в настройки чтобы включить)?
        Ответить
        • Мне на встроенной видеокарте WebGL удалось запустить только в Фуррифоксе, да и то пришлось применить магию с about:config...
          Ответить
          • > магию с about:config
            В виндовом ФФ по дефолту отключено?
            Ответить
            • Сейчас проверил 23.0 — работает, только если принудительно установить webgl.force-enabled = true.
              Ответить
              • Поди у видюхи какие-то проблемы с совместимостью?

                Просто на некоторых видюхах бубунтовская unity тоже отключает ускорение. И не зря... Когда я его включал на fx5200 там половина иконок тупо не рисовалась 🙂
                Ответить
        • Firefox 26.0 под линухой. Ничего не включал, работает из коробки.

          Насчет остальных - пока х.з., не смотрел...
          Ответить
  • О, фрактальчики 🙂 Cам как-то пробовал на десктопном OpenGL 2.1 рисовать мандельброта. С драйвером от nvidia работало, ati компилировало шейдер, но не работало по каким-то другим причинам, а intel вообще шейдер не скомпилировал. Веселая эта штука - GLSL.
    А, и к тому же, почему никто не обратил внимание на лишнее вычисление квадратного корня в строке length(z) < 2.0?
    Ответить
    • > вычисление квадратного корня в строке length(z) < 2.0
      Да я в курсе. По-хорошему надо dot(z, z) < 4.0. Странно, что Тарас еще не злорадствует в этом треде.
      Ответить
      • Борманд, нет ли какого нибудь способа распарсить нестандартную
        командную строку? Строка подается на вход консолечке - cmd.exe и может
        содержать разбодяженные команды, например:
        cmd /c cd program files & start progname -param
        Простая замена
        команд с помощью stringreplace не верное решение, т.к. на диске могут
        быть файлы с такими же именами, например, start.exe. Как быть?
        Ответить
        • Так тебе ее распарсить или сгенерить надо?

          Вообще в винде в таких случаях заключают многословные аргументы в кавычки: cd "program files". Иначе хуй распарсишь.
          Ответить
          • распарсить, именно распарсить, корректно удалив все команды консолечки.

            Если поможете мне, подкинув более-менее универсальное решение, уплачу Вам 500 р ) Сил моих уже нет, давно с этим бьюсь. Нужно получить имя файла. Из примерно такой строки
            cmd /c cd program files & start progname -param
            это будет "program files\progname[проверить расширение, есть ли исполняемые файлы *.exe, *.com]"
            Ответить
                • bormandt@yandex.ru

                  Кинь примеры строк и чего из них надо получить.

                  Если там произвольная консольная команда - разобрать будет очень и очень сложно...

                  А Start это и есть start.exe
                  Ответить
            • > на диске могут быть файлы с такими же именами, например, start.exe.
              Обычная ко-ко-консолечка как раз запускает эти файлы вместо консольных команд.

              > корректно удалив все команды консолечки
              В обычной консоли ещё, при использовании doskey, можно сделать алиас xxx=dir %*, запустить xxx c:\ && xxx d:\, и это, по-моему, будет эквивалентно dir "c:\" "&&" "xxx" "d:\".
              Если надо учитывать подобные моменты, можно убиться (наверное).
              Ответить
              • Но как проверить есть ли такой файл? Консолечку не трогаем - командная строка сия пойдет на вход другой проге, поэтому и возникла необходимость в такой шизофрении.

                >> doskey, можно сделать алиас xxx=dir %*, запустить xxx c:\ && xxx d:\, и это, по-моему, будет эквивалентно dir "c:\" "&&" "xxx" "d:\".
                Какой кошмар(

                Те. нужно тупо выхватить все, что между пробелами и искать, есть ли такой файл. Так что ли?
                Ответить
                • что может быть проще, чем написать всего лишь собственный интерпретатор командной строки...

                  тебе надо учитывать переменные окружения (например, path)
                  разобрать всю командную строку согласно синтаксису твоего любимого интерпретатора (т.е. cmd.exe)
                  т.е. не забыв про возможности, например, циклов
                  исполнять все команды из разобранного списка честно и последовательно

                  при этом использовать пользовательские переменные, объявляющиеся в строке и т.д.

                  в общем, ждём
                  Ответить
                • Но как проверить есть ли такой файл?
                  Можно посмотреть переменные среды %PATH% и %PATHEXT%, если для каждого пути из path и в текущем каталоге нет файла с каждым расширением из pathext, то файла нет, скорее всего это команда. Причём, если в команде-то можнт быть xxx, а может - xxx.exe или xxx.bat. Причём, файл xxx.jpg.bat можно запустить как xxx.jpg, а можно - как x.jpg.bat, но не как x.
                  Тут надо аккуратно все варианты разобрать и курить виндоманы. К тому же не факт, что в другой версии винды не будет маленького и гордого отличия.

                  > Те. нужно тупо выхватить все, что между пробелами и искать, есть ли такой файл. Так что ли?
                  Честно говоря, я задачу до конца не понял, поэтому могу отвечать не на те вопросы.
                  Надо учесть пробелы в кавычках, скобки и символы вида |, <, >, &&, ^, меняющие смысл написанного.

                  P.S. defecate-plusplus уже всё это написал.
                  Ответить
      • Да потому что это шейдеры, странно злорадствовать при виде соринки, упавшей в кучу говна.
        Ответить
        • > кучу говна
          Шейдеры по умолчанию говно? Или это все-таки про мой шейдер и мои кривые руки?
          Ответить
          • Я про шейдеры, да. Куча ограничений, свой баг компилятора на каждой видяхе, свой баг выполнения на каждой видяхе...
            Да здравствует Софтрендер!
            Ответить
            • > Да здравствует Софтрендер!
              Хех, у меня когда-то была софтрендерная версия этой демки со множествами Жюлиа, вроде как под дос (или под винапи, не помню уже)... Только я ее куда-то проипал ;(

              Вот вчера just for lulz решил повторить ее с новыми технологиями на GPU...

              > Куча ограничений
              Ну а что поделать. Без ограничений ты 960 вычислительных ядер не замутишь, там же каждый транзистор дорог. По крайней мере при текущем уровне технологий ;(
              Ответить
        • > что-то не запустилось ни в хромом, ни в лисе (
          Что и следовало ожидать. webgl сырой, а у меня руки кривые 🙂

          А чего-нибудь пишет об ошибке?
          Ответить
            • Хм, странно, вроде как должен был вывалить исключение 😉

              А в консоль браузера ниче интересного не высрало?
              Ответить
                • А запускаешь под виндой? Можно твои ось/браузер/видео?

                  Просто сейчас погуглил, у ANGLE, через который хром и огнелис транслируют GLSL в HLSL для direct x есть проблема. Ему нравится анроллить большие циклы (а тут как раз большой цикл до 100), и он почему-то долго это делает. А часто этот анролл вообще падает.
                  Ответить
            • У меня на линуховом хромиуме 31.0.1650.63 запустилось. Раз gl не смог получить, то походу у тебя в хромиуме webgl выключен по какой-то причине...

              Сможешь chrome://gpu/ помотреть?
              Ответить
            • Ну что выходит - демка не пашет на:
              - совсем уж старых интеловских интеграшках (скорее всего из-за слишком большого цикла, который на них не реализовать)
              - ишаке любой версии, включая IE11 (скорее всего та же проблема, т.к. в IE11 другие демки типа вертящегося кубика идут)
              - некоторых браузерах, где WebGL надо включать врукопашную (operaъ 12.х, хром под ведром, десктопный хром для видеокарт в блеклисте)
              - на айпадах (он там есть, но собака на сене)

              Т.е. WebGL можно потихоньку начинать использовать...
              Ответить
      • Еще пара результатов:
        - у друга на mac'е запустилось
        - у подруги на винде и старой интеловской интеграшке линковка шейдеров упала с "error X3511: unable to unroll loop, loop does not appear to terminate in a timely manner"
        Ответить
        • Там спиралевидые окружности, меняющие цвет. Красиво.
          Хм. Теперь искрящиеся молнии.
          Ответить
        • Mac 10.7.5 Chrome (хз какой). Полет отличный
          Правда от видюхи может зависеть. Во многих Маках встроенная Intel, а у меня GTX670
          Ответить
          • > Правда от видюхи может зависеть.
            Ну здесь еще шейдер не самый удачный, с огромным циклом. Как оказалось, далеко не всем видюхам такое по душе...

            P.S. Всем огромное спасибо за тестирование!
            Ответить
          • > Can't link shader program:
            Ну майкрософт как всегда в своем стиле. Ошибка без текста ошибки 😉

            P.S. Кстати, а в 10 ишаке откуда WebGL? Can I Use говорит, что минимальный - 11.0.

            http://caniuse.com/webgl
            Ответить
              • Кстати, включи у него отладочную консоль, если время будет. Может быть он туда ошибку линковки шейдера вывалил?
                Ответить
      • Встроенный интеловский видеоадаптер.

        В Хроме 29 работает с дефолтными настройками (хотя предыдущие версии Хрома напрочь отказывались включать WebGL), в ФФ работает (после пинка webgl.force-enabled=true), а Опера 12 выдала:
        Sorry :(
        
        http://bormand.github.io/julia-webgl/js/main.js:83
        Uncaught exception: TypeError: Cannot convert 'gl' to object
        Ответить
        • > Встроенный интеловский видеоадаптер.
          Назвать это видеокартой язык не повернулся? Правильно.
          Ответить
      • Intel GM45 Express Chipset, Linux, Mesa 9.1.6
        Firefox (вроде бы я принудительно отключил блеклист, не помню уже)
        Работает.
        Ответить
      • $ firefox --version
        Mozilla Firefox 23.0
        $ google-chrome --version
        Google Chrome 28.0.1500.95 
        $ uname -svop
        Linux #1 SMP Mon Aug 12 15:51:00 UTC 2013 x86_64 GNU/Linux
        $ cat /etc/redhat-release 
        Fedora release 18 (Spherical Cow)
        $ cat /proc/driver/nvidia/version 
        NVRM version: NVIDIA UNIX x86_64 Kernel Module  319.32  Wed Jun 19 15:51:20 PDT 2013
        GCC version:  gcc version 4.7.2 20121109 (Red Hat 4.7.2-8) (GCC)
        $ cat /proc/driver/nvidia/gpus/0/information | grep Model
        Model: 		 GeForce GTX 560M

        Все работает.
        Ответить
      • ПОСОНЫ, НЕ ХОДИТИ ТУДА ШЕЙДЕРЫ ПОЛИГОНЫ РАСЧЛЕНКА НА ЭКРАНЕ ВИДЮХУ РАСПИДОРАСИЛО, ПИШУ С СИТИВОЙ КАРТЫ!!!
        ПРОЦ ЖИВ.
        Ответить
      • Ну охренеть. Предложил мне обновить браузер, а обновил версию винды.
        Ответить
        • Это get.webgl.org что-ли на обновление винды кидает?

          Бага какая-то. Должен был установить линукс.
          Ответить
          • Ну он говорит эксплорер 11 ставим, я согласил потом ещё пару раз и вот он мне уже вин 8.1 выкачивает.
            У них какая-то любовь к этой цифре. DirectX 11, DirectX 8.1
            Ответить
          • Анекдот эпохи BBS:

            — Не могу установить Windows. Скачиваю, пытаюсь установить, а у меня OS/2 ставится. Повторяю — то же самое.
            — А какой протокол у модема?
            — V.42bis со сжатием и с коррекцией ошибок.
            Ответить
      • Win7, Opera 12.16: «Uncaught exception: TypeError: Cannot convert 'gl' to object».
        Ответить
        • А в 12 опере то ли нету WebGL, то ли активировать как-то надо. Еще ни у кого не пошло, хотя на тех же машинах в других браузерах все норм.

          P.S. Кстати забавно, но демка пошла даже на андроидах (фаерфоксом, хромом или оперой, в штатном нету WebGL). А вот эппл - пидорасы. Сделали в iOS поддержку WebGL, и никому не дают ее юзать.
          Ответить
          • > эппл - пидорасы
            Шутканул...

            > Сделали в iOS поддержку WebGL, и никому не дают ее юзать.
            Собака на сене пилит айфон 6 с играми через бровсер
            Ответить
            • Да скорее просто ссут, что народ в обход аппстора, объективного си, компиляторов, которые идут только на маках и их дорогущей лицензии разраба будет игры с нормальной графой распространять и монетизировать.

              Вот и закопали сначала флеш, а потом и вебгл.
              Ответить
          • opera:config#UserPrefs|EnableWebGL — вот тут пытаемся поставить двойку.
            opera:config#UserPrefs|EnableHardwareAcceleration — вот тут тоже.

            После перезапуска браузера (это единственная ситуация, когда его нужно перезапускать), идём на opera:gpu и смотрим, какой бекенд не поддерживается.

            Увы, софтверного GL в Опере нет.
            Ответить
          • Свежее подтверждение того, что Apple — пидорасы: „Apple разорвала контракт с «Евросетью» после заявления Охлобыстина о геях“.

            Читать далее>>> http://archive.is/Uqa4Y
            Ответить
            • Вот чего он заявляет. По такому закону половину его друзей-попов можно пересажать.
              Ответить
            • о как заднеприводные зашевелились
              интересно, можно ли нагнуть жппл в басманном суде на миллиард за разрыв контракта
              Ответить
            • >> После этого у компании «Евросеть», где Охлобыстин занимает должность креативного директора, настали «тяжелые времена».

              Что лишь подтверждает, что все яблочники-пидорашки.
              Когда вижу у парня айфон или ноут с обгрызанным яблоком, заочно причисляю его к пассивным геям.
              http://ru.idigg.ru/images/2013/10/04/845f0d8f4c3199e550ec3eca37237b82.jpg
              Ответить
              • > Когда вижу у парня айфон или ноут с обгрызанным яблоком, заочно причисляю его к пассивным геям.
                Попрошу не обобщать!
                Ответить
                  • Да мало ли. Причисление к пассивным геям может оказаться опасной штукой, если причисляющий - активный гей.
                    Ответить
                    • а также это может оказаться опасной шуткой для активного гея, если причисляемый им к пассивным окажется активным
                      Ответить
                      • А ещё это может оказаться опасной шуткой, если причисляемый окажется сильным, блатным и попросит обосновать.
                        Ответить
                        • Обосную. Страсть к стильным штучкам аки девайсы от Apple граничит с метросексуальностью(смесь эгоизма, упоротости, пидорства и еще нескольких малоприятных качеств). Тру пацаны этим не страдают.
                          >> окажется сильным,
                          т.е. ты противопоставляешь к слабости?
                          На заметку: лупят и вытирают ноги не об слабых, а об трусливых. {CompilerIF оппонент не упорот} Если ты найдешь в себе мужество сказать перечисленное выше в лицо оппоненту, он даже зауважает тебя.{CompilerENDIF}
                          Ответить
                        • А еще все, кто жмут на "энтер" перед фигурной скобкой (т.как Алман), а так же все, кто пользуются машинами Тюринга, т.как Тюринг...
                          Ответить
                      • Ничего опасного, ибо насилия нет - все делается по доброй воле.
                        Если никто не согласился на пассивную роль, они просто разойдутся.
                        Ответить
                    • Если причисляемый не пассивный гей, то ничего опасного нет. Активные геи не насильники, и лишь играют роль мужчиноида в сексе.
                      Ответить
                • Спалился с айфоном! Надеюсь самый последний? Жди завтра моих людей с пальцеотрезалкой.
                  Ответить
                  • Не, не яТелефон, а яПодкладка джва. Трофейный, не купленный.

                    Железяка сама по себе годная, но больно уж огороженная.
                    Ответить
                    • джва? который без кретины? надо было бросить эту застарелую непотребщину обратно в лицо организаторам соцсоревнования!
                      Ответить
                      • > который без кретины?
                        MC769RU/A если быть точным.

                        > надо было бросить эту застарелую непотребщину обратно в лицо организаторам соцсоревнования!
                        Да ладно. Я ж не ради айпада участвовал. Это так, приятный бонус.
                        Ответить
                        • а на этом девайсе предложения гостя приступить к анальнам играм не разворачиваются на пол экрана, не включают песню "what is love?"?)
                          Ответить
  • Вот слоупки. На гейдеве все ещё не юзают WebGL, а на уютненьком - уже.
    Ответить
    • Для них это работа всей их жизни, а для меня просто фан...

      Поэтому они никогда не возьмутся писать движок под медленный яваскрипт и глючные браузеры 😉 Настоящие посоны пишут движки на си и крестах.
      Ответить

Добавить комментарий

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8