Re: [PATCH 2/4] d3d10: Move the effect shader input signature into a separate struct.

2010-04-07 Thread Henri Verbeet
2010/4/6 Rico Schüller kgbric...@web.de:
  +struct d3d10_effect_shader_signature {
That isn't going to apply. Did you edit the patch? (And please keep
the formatting consistent with the existing code.)




Re: [PATCH 2/4] d3d10: Move the effect shader input signature into a separate struct.

2010-04-07 Thread Henri Verbeet
On 7 April 2010 11:29, Henri Verbeet hverb...@gmail.com wrote:
 That isn't going to apply.
Also, 3/4 and 4/4 have similar issues.




Re: ddraw/tests: Added todo_wine test to verify resizing of fullscreen windows

2010-04-07 Thread Henri Verbeet
On 6 April 2010 23:14, Johan Gill johan.g...@gmail.com wrote:
 +»··»···if (!EqualRect(scrn, orig_rect)) {
 +»··»···/* Check that the client rect was resized */
 +»··»···rc = GetClientRect(hwnd, test);
 +»··»···ok(rc!=0, GetClientRect returned %x\n, rc);
 +»··»···rc = EqualRect(scrn, test);
 +»··»···todo_wine ok(rc!=0, Fullscreen window has wrong size\n);
 +»··»···}
Please don't mix tabs and spaces, just use 4 space indent.



About Wine Test Bot

2010-04-07 Thread Alexandre Goujon
Hi,

I have a suggestion about wineTestBot.
It's maybe the wrong place but I'm quite sure interested people read
wine-devel.

I think it would be great if we could
not only run tests (as it already does)
but also check if a patch does not break wine (on minGW, on cygwin or on MAC
for instance).

Thus, we could choose a kind of WINEBUILD VM to tell wineTestBot to only
compile wine with our patch.

Currently, I can't compile on Linux and cygwin is very slow.
So it would make my life easier if I could rely on wineTestBot...


Comments are welcome
Thanks



Re: About Wine Test Bot

2010-04-07 Thread Dmitry Timoshkov
Alexandre Goujon ale.gou...@gmail.com wrote:

 Currently, I can't compile on Linux and cygwin is very slow.
 So it would make my life easier if I could rely on wineTestBot...

For any productive Wine development you need not only working compiling
environment, but a working Wine binary, to run at least 'make test'.

-- 
Dmitry.




Re: [PATCH 2/5] [Server]: correctly set the DR0..7 registers on Linux for x86_64 architecture

2010-04-07 Thread Alexandre Julliard
Eric Pouech eric.pou...@orange.fr writes:

 @@ -549,12 +549,21 @@ void get_thread_context( struct thread *thread, 
 context_t *context, unsigned int
  goto done;
  }
  }
 +#ifdef __i386__
  context-debug.i386_regs.dr0 = data[0];
  context-debug.i386_regs.dr1 = data[1];
  context-debug.i386_regs.dr2 = data[2];
  context-debug.i386_regs.dr3 = data[3];
  context-debug.i386_regs.dr6 = data[6];
  context-debug.i386_regs.dr7 = data[7];
 +#else /* __x86_64__ */
 +context-debug.x86_64_regs.dr0 = data[0];
 +context-debug.x86_64_regs.dr1 = data[1];
 +context-debug.x86_64_regs.dr2 = data[2];
 +context-debug.x86_64_regs.dr3 = data[3];
 +context-debug.x86_64_regs.dr6 = data[6];
 +context-debug.x86_64_regs.dr7 = data[7];
 +#endif

You can't use ifdefs, this needs to depend on the CPU type of the client
process.

-- 
Alexandre Julliard
julli...@winehq.org




Participation in GSoC

2010-04-07 Thread Alexander N. Sørnes

Hello,

I'm a student interested in participating in Google's Summer of Code. 
This isn't my first mail to the wine-devel list; I was a GSoC 
partiicpant in 2007, where I worked on WIne's WordPad clone. I have also 
done some work on the AppDB as well as minor bug fixes and lately a 
(little) work on some dsound tests. Other, non-Wine related code I've 
written include work with low-level keyboard hoo


There are a few projects I have in mind. I've had a look at the Wiki, 
and both 'Implementing the Internet Explorer GUI' and working on the 
Control Panel applets seem like interesting projects. Have any students 
applied for these yet? My only COM experience so far has been 
implementing a few stubs for DirectPlay, as well as some dsound tests:


http://www.winehq.org/pipermail/wine-patches/2010-February/084748.html
http://www.winehq.org/pipermail/wine-patches/2010-February/084881.html


As for my own project ideas, I think it would have been interesting to 
implement IPX over TCP in winsock, since most of the games that use IPX 
require root access for it to work. This feature could perhaps be 
enabled in winecfg or the Control Panel. I don't have any experience 
with networkking, though, so I'm concerned that this might be a bit 
amibitous.



I would appreciate feedback of any kind, and yes, I know that time is 
running out with respect to the application deadline :)




Regards,

Alexander N. Sørnes





Re: Participation in GSoC

2010-04-07 Thread Roderick Colenbrander
Hi Alexander,

Good to see you back in GSoc. I can't comment on IE / control panel as
I don't know much about it but I will comment to another small part.

 As for my own project ideas, I think it would have been interesting to
 implement IPX over TCP in winsock, since most of the games that use IPX
 require root access for it to work. This feature could perhaps be enabled in
 winecfg or the Control Panel. I don't have any experience with networkking,
 though, so I'm concerned that this might be a bit amibitous.

It should be possible to implement IPX over TCP but when you do this,
the other side also needs to wrap IPX in a TCP packet.  (there are
various user space tools I believe which can do this). IPX can be used
without root permissions if you use posix file capabilities to enable
raw sockets on wineserver. I experimented with this a long time ago
and I wasn't able to get it working at that time but this should
somehow work.

Roderick




winmm: Improve MCI A/W mapping slightly.

2010-04-07 Thread Joerg-Cyril.Hoehle
Hi,

I forgot to mention that this patch was rebased against 1.1.42,
supersedes the former Fix A/W mapping for 64bit Wine patch and
is not dependent on prior 64bit patches.

Currently, I can't think of a fully general solution to the A/W
mapping problem. In theory, an unknown driver with new unknown
commands and keywords could be registered.  We have little idea how
large the structure is and which flags controls the validity of the
nth slot, e.g. when to call strdupAtoW().

One could think about parsing the command table to obtain this
information.  However,
 a) I see no guarantee that there's a unique MCI_STRING value for a
given bit that is set in the flags parameter.
 b) This does not help with baroque commands like SYSINFO which
sometimes put a string, sometimes a DWORD into the result buffer
or which are documented to count buffer sizes in bytes, unlike
other commands.

This latter example reveals that calling MCI_Cleanup() before
unwrapping is unfortunate, as valuable type information is
lost.  It is currently encapsulated inside mciSendCommandW.

Open questions:
 - Does Wine actually support hooking in a new native MCI driver?
   (beside DLL overrides)

 - Why does Wine copy dwCallback only when MCI_NOTIFY is set? It is
   not wrong, but why care? To prevent a Valgrind message when that
   slot was not filled by the caller?

BTW, my (unpublished) testing reveals that unlike what MSDN says,
dwRetSize is counted in characters in MCI_SYSINFO_PARMSW, not bytes
(at least on w2k with SYSINFO_NAME [OPEN]). But that shall be the
subject of another patch.

Regards,
 Jörg Höhle




Re: About Wine Test Bot

2010-04-07 Thread Alexandre Goujon
Dmitry Timoshkov wrote


 For any productive Wine development you need not only working compiling
 environment, but a working Wine binary, to run at least 'make test'.


Ok so I could not run any test until compiling on cygwin works.
But the idea was to be able to remotly compile wine with some of our patches
applied.

I was told you can't do that, it will break minGW.
The WINEBUILD VM exists but we can't use it (or tell me how to do that)

Of course I could install MinGW on my PC too...



Re: About Wine Test Bot

2010-04-07 Thread Dmitry Timoshkov
Alexandre Goujon ale.gou...@gmail.com wrote:

  For any productive Wine development you need not only working compiling
  environment, but a working Wine binary, to run at least 'make test'.
 
 
 Ok so I could not run any test until compiling on cygwin works.

Even if compiling under Cygwin works, the tests still require running
them under Wine, and Wine can't run under Cygwin (and most likely will
never be able to).

-- 
Dmitry.




Re: About Wine Test Bot

2010-04-07 Thread Seth Shelnutt
Patchwatcher is suppose to sort of do this. It only works for linux, not
other systems, but it will not only check your patch against compiling but
also against the test suit and mark and regressions.



Re: About Wine Test Bot

2010-04-07 Thread Alexandre Goujon
I didn't know this tool.
It looks quite interesting.

Thanks again for your advices



Re: About Wine Test Bot

2010-04-07 Thread Greg Geldorp
Hi Alexandre,

 Ok so I could not run any test until compiling on cygwin works.
 But the idea was to be able to remotly compile wine with some of our patches
 applied.

 I was told you can't do that, it will break minGW.
 The WINEBUILD VM exists but we can't use it (or tell me how to do that)

The WINEBUILD VM is only used to cross-compile tests in case you submit a patch 
and not a test executable to the bot. Running tests on Wine is outside the 
scope of WineTestBot (perhaps it should be called WinTestBot...), it is aimed 
at making sure that the tests themselves are correct (by checking that they 
don't fail on Windows).

Ge van Geldorp.




Re: [PATCH 2/4] d3d10: Move the effect shader input signature into a separate struct.

2010-04-07 Thread Rico Schüller

Am 07.04.2010 11:29, schrieb Henri Verbeet:

2010/4/6 Rico Schüllerkgbric...@web.de:
   

  +struct d3d10_effect_shader_signature {
 

That isn't going to apply. Did you edit the patch? (And please keep
the formatting consistent with the existing code.)


   

Sorry, Thunderbird screwed up the patches. I'll send a working version.

Cheers
Rico




Mac OS X technologies

2010-04-07 Thread C.W. Betts
There is a long list of technologies in Mac OS X that could be used to improve 
Wine on OS X. One of them is ColorSync. ColorSync is a color management 
software that is HEAVILY integrated into the Mac OS. For instance, you can 
calibrate your monitor and when OS X starts up, it will read the color profile 
file and adjust the graphics card output.  It will also do color correction 
automatically in, e.g. Preview to get the best out of an image.

However, I do not know how ColorSync influences Mac OS X's X11 system.  It is 
possible that in order to take full advantage of ColorSync, a Mac OS X native 
front-end will need to be developed.

Another interesting Mac OS X technology is Image Capture.  This technology is 
used by the OS to scan images from a scanner as well as import images from a 
camera (iPhoto).  It provides a wrapper around TWAIN drivers so they can be 
used by applications that don't support TWAIN.  This is a purely C Framework. 
Although a sub-framework of the Carbon Framework, the functions are available 
in 64-bit code.  This should not be confused with the ImageCaptureKit 
framework, which is most likely an Objective-c wrapper around the main Image 
Capture framework.








Re: (try2)[PATCH 3/4] d3d10: Implement ID3DEffectVariable::GetInputSignatureElementDesc().

2010-04-07 Thread Henri Verbeet
2010/4/7 Rico Schüller kgbric...@web.de:
 +/* Check desc for NULL, this crashes on W7/DX10 */
 +if (!desc)
 +{
 +WARN(This should crash on W7/DX10!\n);
 +return E_FAIL;
 +}
It's perfectly fine to require a parameter to be non-NULL, and just
crash if it isn't. You'll get a nice backtrace, or at least an
exception, which helps debugging as well.

 +/* Check shader_index, this crashes on W7/DX10 */
 +if (shader_index = This-effect-used_shader_count)
 +{
 +WARN(This should crash on W7/DX10!\n);
 +return E_FAIL;
 +}
Similar as above. In general if Windows doesn't check something, we
don't either. However, it's worth noting that if we'd be writing to
that index we sometimes do check those, because there's the potential
for memory corruption in those cases.




Re: [PATCH 01/10] server: allow polling for no events in set_fd_events

2010-04-07 Thread Mike Kaplinskiy
On Tue, Apr 6, 2010 at 2:03 PM, Alexandre Julliard julli...@winehq.org wrote:
 Mike Kaplinskiy mike.kaplins...@gmail.com writes:

 Would allowing adding the fd to the poll loop after it has been
 removed be more sane? Otherwise we have to resort to ugly things like
 sock_try_event (which only half work).

 I don't think that makes sense either. The error condition is not going
 to go away so you can no longer poll on it anyway, you really need to
 close the socket and create a new one.

 --
 Alexandre Julliard
 julli...@winehq.org


That's only true in the case of a full close; if you do
shutdown(,SD_SEND) on the remote end, we will get POLLIN/0 recv, but
if we decide to do a send after that and the connection gets broken
(either the remote fully closes the socket or we get connection
reset), we will receive a POLLHUP/POLLERR with a different error code,
which is what windows reports. The problem is that there are two
halves of the connection to hang up (when both have hangup we get a
POLLHUP, otherwise just a POLLIN/0 recv). (data from
http://www.greenend.org.uk/rjk/2001/06/poll.html )

But I see your point that perhaps it doesn't belong in the main loop
when one of the halves gets closed. I guess we can keep sock_try_event
around but only use it when the socket has been removed from the main
loop. I'll also add detection of half-closed connection and drop that
event if the other half hasn't hung up yet. Sadly looks like MacOS
will be left out of that detection since it reports POLLIN|POLLHUP for
everything.

Does that sound good?

Mike.




Re: [GSoC] IUri Implementations

2010-04-07 Thread Thomas Mullaly

 In general, the idea looks right, that's how it probably should be
  implemented. This is an implementation detail through. The bigger and
 more important problem is URI parsing and canonicalization. That's where
 most of work needs to be done. In this case tests will be also very
 important. You don't know how it should work until you have a test. The
 first step would be to write a test infrastructure some tests (adding
 new test shouldn't be harder than filling a table with more data). Once
 it's done, you'll be able to decide on best way to implement parser and
 IUri interface. The project should result in many tests and good support
 for at least more useful flags and IUri functions.


Hi Jacek,

Sorry for my delayed response. Thank you for your suggestions.

For the testing infrastructure, I was thinking about writing a few Windows
programs that use Microsoft's IUri implementation to generate the results
that my testing infrastructure would use to make sure my implementation is
working correctly. Is this the right approach or would you recommend doing
it another way?

Also, I have finished a rough draft of my proposal and I was wondering if it
would appropriate to post to it to the mailing list in order to receive
feedback from you and others.



Re: [PATCH] [Server]: correctly set the DR0..7 registers on Linux for x86_64 architecture

2010-04-07 Thread Dmitry Timoshkov
Eric Pouech eric.pou...@orange.fr wrote:

 +case CPU_x86_64:
 +context-debug.x86_64_regs.dr0 = data[0];
 +context-debug.x86_64_regs.dr1 = data[1];
 +context-debug.x86_64_regs.dr2 = data[2];
 +context-debug.x86_64_regs.dr3 = data[3];
 +context-debug.x86_64_regs.dr6 = data[6];
 +context-debug.x86_64_regs.dr7 = data[7];
 +default:
 +set_error( STATUS_INVALID_PARAMETER );
 +goto done;
 +}

You forgot 'break'.

 +case CPU_x86_64:
 +if (ptrace( PTRACE_POKEUSER, pid, DR_OFFSET(0), 
 context-debug.x86_64_regs.dr0 ) == -1) goto error;
 +if (thread-context) thread-context-debug.x86_64_regs.dr0 = 
 context-debug.x86_64_regs.dr0;
 +if (ptrace( PTRACE_POKEUSER, pid, DR_OFFSET(1), 
 context-debug.x86_64_regs.dr1 ) == -1) goto error;
 +if (thread-context) thread-context-debug.x86_64_regs.dr1 = 
 context-debug.x86_64_regs.dr1;
 +if (ptrace( PTRACE_POKEUSER, pid, DR_OFFSET(2), 
 context-debug.x86_64_regs.dr2 ) == -1) goto error;
 +if (thread-context) thread-context-debug.x86_64_regs.dr2 = 
 context-debug.x86_64_regs.dr2;
 +if (ptrace( PTRACE_POKEUSER, pid, DR_OFFSET(3), 
 context-debug.x86_64_regs.dr3 ) == -1) goto error;
 +if (thread-context) thread-context-debug.x86_64_regs.dr3 = 
 context-debug.x86_64_regs.dr3;
 +if (ptrace( PTRACE_POKEUSER, pid, DR_OFFSET(6), 
 context-debug.x86_64_regs.dr6 ) == -1) goto error;
 +if (thread-context) thread-context-debug.x86_64_regs.dr6 = 
 context-debug.x86_64_regs.dr6;
 +if (ptrace( PTRACE_POKEUSER, pid, DR_OFFSET(7), 
 context-debug.x86_64_regs.dr7 ) == -1) goto error;
 +if (thread-context) thread-context-debug.x86_64_regs.dr7 = 
 context-debug.x86_64_regs.dr7;
 +default:
 +set_error( STATUS_INVALID_PARAMETER );
 +}

Same here.

-- 
Dmitry.