IRC Log Viewer » #firebreath » 2011-07-18

IRC Nick Time (GMT-7) Message
someone-noone 03:07 hello
linearray 03:07 hi
someone-noone 06:07 Is here any OpenGL specialists? Getting issue...
kirya 07:07 hello everyone
can i
please for help?
someone-noone 07:07 why not?
kirya 07:07 sorry
i have problem with firefox in fedora 15
i was placed plugin in ~/.Mozilla/plugins directory
but firefox cant see the plugin
Sajty 07:07 hi
disable log4cplus
kirya 07:07 in ubuntu 11.04 it was ok
Sajty 07:07 kirya: For me on ubuntu, if log4cplus extension is enabled, then it wont be detected. If I disable it it worked, but I don't know what can be difference the between ubuntu and fedora.
kirya 07:07 log4cplus - what it is?
Sajty 07:07 In your project in PluginConfig.cmake file, comment out add_firebreath_library(log4cplus) line
In FBTestPlugin its enabled by default.
kirya 07:07 i was created my own plugin
Sajty 07:07 Well, then I can't help, sry.
kirya 07:07 is was enabled there by default?
Sajty 07:07 If you used, then I think its not enabled by default.
kirya 07:07 ok, i will try
the same compiled plugin works in ubuntu and does not work in fedora
may be some apparmor/selinux settings?
Sajty 07:07 are you starting firefox from the console?
is there some error message?
kirya 07:07 soo too
no error messages
firefox show the panel "plugin missing"
Sajty 07:07 some firefox version too? :D
kirya 08:07 i not shure
but it are 4-5 both, like
Sajty 08:07 Well, It may be worth a try to put it in /usr/lib/mozilla/plugins with root access?
kirya 08:07 sorry, i have to go, i will write this to forum
thanks you\
Sajty 08:07 ok, bye
taxilian 10:07 g'morning all
Sajty 11:07 good morning taxilian :)
someone-noone 11:07 good evening!
taxilian 12:07 anyone have any suggestions for how we can clarify what the exact role of fbgen is and how it relates to the prep scripts?
people keep getting confused about whether or not they need to rerun fbgen, what the difference between the build dir and projects dir is, etc
which is weird to me; to me it seems clear, but I have a unique viewpoint, so it's hard for me to see how to explain it better
linearray 12:07 maybe emphasize that fbgen generates initial source code, prep* generate VS/xcode/... projects
taxilian 12:07 I thought I had =]
taxilian 14:07 anyone here using dynamic runtime with a plugin?
alternate question, anyone using curl that isn't using the libs that I have in the repo?
on windows, specifically, for boht questions
Sajty 15:07 Well, I have plugin for the plugin on windows and linux. The game is using dynamic runtime.
its not fine tuned yet :D
taxilian 15:07 I'm trying to figure out if the crt .dll will be found if it's just installed next to the plugin dll
Sajty 15:07 in mingw it works!ű
I don't know if it works in visual studio
taxilian 15:07 well, since mingw doesn't work with FireBreath… =]
Sajty 15:07 is it guaranteed that if the user runs multiple instances of the plugin, attach events and detach events are on the same thread?
or can it be that each window has its own thread?
taxilian 15:07 no, the browser only has one thread for the plugin
always the same thread
doesn't matter how many instances
Sajty 15:07 ok
thanks, then will remove the mutex :D
kalev 15:07 taxilian: I'm using the dynamic runtime and no, I don't think it will find the .dll if it's installed next to the plugin dll
taxilian 15:07 kalev: so it has to be installed as admin? that's no good
kalev 15:07 I believe the dynamic linker's default search path includes current application's directory (firefox's or IE's), PATH, system32 dir and a bunch of others
taxilian 15:07 yeah; but not the location of the current module, neccesarily
kalev 15:07 yeah, exactly.
taxilian 15:07 and you can add that, but only with a dll that can be delay loaded
which the CRT cannot
kalev 15:07 the CRT comes with MSM files that can be included in wix projects for easy distributing
but I have no idea how they'd behave with user installs.
taxilian 15:07 doesn't help; I can't require administrator access
there isn't anywhere you can put it that would be in the search path
kalev 15:07 you could edit the PATH variable, but that's kinda gross
taxilian 15:07 lol
and won't work until the browser restarts
kalev 15:07 by the way, the CRT runtime dll files actually get installed in winsxs directories and are looked up using an embedded manifast in your dll file
so there is a small chance that MS has somehow solved it to work for user installs too; I really have no idea
taxilian 15:07 guess that might be worth looking into
kalev 15:07 no problem, I'm off to bed now
taxilian 15:07 g'night
neilg_ 16:07 Taxilian: Yes
Not curl - but that's exactly what our plugin does, it's written to load DLLs
And those DLLs also have all kinds of dependencies
Though in terms of the MSVCRT, we distribute that with our installer... I suspect it would work for you so long as you add the DLL directory to the path (which you can do progmattically)
Ugh. Programatically
taxilian 16:07 hmm. I can't rely on changing the path
neilg_ 16:07 Sure you can
It only affects your process - and you're just adding a path to it
taxilian 16:07 oh, I see what you mean
yeah, I can do that; but the CRT has to load before I'd ever be able to add the path
neilg_ 16:07 True, but you can do that if you're loading another DLL that loads the CRT dynamically
taxilian 16:07 heh. yeah, that would probably work; however, when I link against something that uses the CRT dynamically and I'm using it statically I get compiler warnings all over the place
neilg_ 16:07 Yup, that's why we distribute the runtime with the plugin
Unfortunately there's not much you can do about that if you're going to statically link against something that loads the CRT dynamically. Besides, that's a mess anyway trying to use two different runtimes
taxilian 16:07 … which is what I was considering, but I can't require admin elevation, and I don't think you can install the crt without
neilg_ 16:07 I think that's true
In fact... I know that's true
Just because it goes into \Windows\WinSxS
So unless you have a DLL that adds the CRT path to the process path before loading another DLL that contains the statically linked runtime... You're pretty much screwed
Is there no way to change the library that you're linking against so it links statically against the runtime?
taxilian 16:07 probably can, I'll just have to recompiled openssl and libcurl myself
rather than using prebuilt
neilg_ 16:07 That's actually easy, I've done it myself
taxilian 16:07 openssl was easy enough to get to build, but libcurl is being a pain so far
neilg_ 16:07 Really?
taxilian 16:07 possibly because I was trying to use cmake to build curl
neilg_ 16:07 That's my guess - I never tried. I just used the .sln
Pointed it at the OpenSSL I'd built and it was good to go
taxilian 16:07 I don't see a .sln
neilg_ 16:07 It might be a .dsw, if you load that it'll create a .sln
(in Visual Studio)
taxilian 16:07 ahh, I see it
worth a shot
neilg_ 16:07 No problem!
Wait, that's not what I did at all
I wrote a batch file to do it for me
set openssl_path=C:\Dev\3rd_party_sources\OpenSSL\openssl-0.9.8l
taxilian 16:07 lol.
neilg_ 16:07 nmake vc-ssl
That's it
Though the .dsw/.sln would work too. But I knew I'd written something for it... lol
taxilian 16:07 heh =]
did you have to change something to make it build static?
or did you build it dynamic?
oh, nevermind
it has multiple configurations
does look like that did the trick
jshanab_wcw 16:07 I am trying to use SDL in my plugin. I got it to build and link bu the plugin does not load. I am trying to set a breakpoint but it apears to be before that. So i try dependency walker, not my strong suit, and it looks the same as other times. Any tricks?
taxilian 16:07 do you get a breakpoint in DllMain?
jshanab_wcw 16:07 I will try.
taxilian 16:07 are you dynamically linking SDL or statically
jshanab_wcw 16:07 no, doesn't sem to get there (the breakpoint circle is open yellow)
dynamic, i think
Is there built in support for SDL?
taxilian 16:07 in FireBreath? not currently
jshanab_wcw 16:07 There is an obvius pause when the browser attempts to load the plugin. (that would be cool. huh? include it like we do boost)
taxilian 16:07 I'm not opposed to the idea, I just have never used it so I've never done it
if someone wants to provide an example plugin using SDL I'm willing to help make it more integrated
jshanab_wcw 16:07 I have been using SFML in one part of the plugin and DirectX in another. The directX is causing issues only working on select versions of windows and video cards. Trying SDL as a way of getting around it
taxilian 16:07 huh… I downloaded and compiled zlib and then reran nmake to build curl to see if I could figure out how to tell it to find it... it found it by itself
jshanab_wcw 16:07 I would be glad to once i get there. The toss up is SFML vs SDL at the moment
taxilian 16:07 what version of driectx are you using?
jshanab_wcw 16:07 I wrote to 9 since the current install is 9,10,11 and 9 goes back quiet a ways. but netbooks with 9c are not capable of ehat I was asking, it gets complicated from there so i thought SDL could negotiate what is avail for me and fallback to software in rare cases
taxilian 16:07 could be; I'm not real familiar with SDL. Back at Move we ended up using D3d7 and DirectShow for that reason
trying to remember; are you just rendering video or did you need to actually do effects and such as well?
jshanab_wcw 16:07 Just rendering video
taxilian 16:07 have you benchmarked what the performance is like just doing a blit with GDI?
we do that at Gradecam and it's actually not bad
no hardware acceleration at all
I even have a code sample you could have
jshanab_wcw 16:07 Yeah, the problem is that GDI+ only does RGB and all my decoders output YUV. SFML is pure open GL and cut CPU form 50% to 13%, Then we went for 20 cameras at once and the directX cut the # of bytes to the card in half.
taxilian 16:07 ahh, yeah, that'd do it; one thing to keep in mind, though, is that many cards will refuse to do YUV when you're using directx
jshanab_wcw 16:07 SW scaling and color conversion accumulates CPU
taxilian 16:07 my experience was that most/all ATI cards worked, but nvidia cards wouldn't do YUV
you can get software YUV to RGB conversion pretty fast, though; use something like this:
jshanab_wcw 16:07 My experiance is the opposite NVIDIA will run the shader even in openGL but ati drivers are hit and miss. nvidia is more consistant. If i can figure out the shader, SFML and the shader with software fallback works ok. SDL "supposidly" handles it for you , the whole concept for SDL or Opengl, or DirectX are very very similar.
taxilian 16:07 no floating point required; also, you could create a lookup table pretty easily, since it's only dealing with 8 bit values in 768 bytes you can create a lookup for every possible value
I haven't messed with opencl or anything; I was just creating textures in YUY2 format
jshanab_wcw 16:07 libavcodec works well actually, just not * 20 and it of course happens in app memory so for higer end systems with a decent card, you are shipping 4 bytes/pixel across the buss to the card
YUV is 2. I had a funy one last week. i major camera manufacture sends YUV 422 packed and the rest send 420 planer. Makes a mess of things
taxilian 17:07 lol
jshanab_wcw 17:07 When all was with libavcodec and sfml all is cool, but when we try to then use directx, i had to repack the bytes because it only recognizes 2 yuv formats
taxilian 17:07 sounds… fun...
jshanab_wcw 17:07 Sometimes the difference between "proof of concept" and deployable code reminds me of a little sign my old boss had on his desk. "It is not the ups and downs of life that get to me, it is all the jerks" (int8_t redefinition...)
taxilian 17:07 hehe
jshanab_wcw 17:07 I cannot see a problem in dependency walker and cannot seem to set a breakpoin, I am out of ideas on how to debug any furthor :-(
At least, on an empty stomach