Re: [patch 1/1] dlls/windowscodecs/pngformat.c: implemented 'PngDecoder_Block_GetCount'

2012-10-05 Thread Nikolay Sivov

On 10/5/2012 06:43, max+...@mtew.isa-geek.net wrote:

From: Max TenEyck Woodbury max+...@mtew.isa-geek.net

---
  dlls/windowscodecs/pngformat.c |6 --
  1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/dlls/windowscodecs/pngformat.c b/dlls/windowscodecs/pngformat.c
index 686f9c6..e8e7cbe 100644
--- a/dlls/windowscodecs/pngformat.c
+++ b/dlls/windowscodecs/pngformat.c
@@ -899,8 +899,10 @@ static HRESULT WINAPI 
PngDecoder_Block_GetContainerFormat(IWICMetadataBlockReade
  static HRESULT WINAPI PngDecoder_Block_GetCount(IWICMetadataBlockReader 
*iface,
  UINT *pcCount)
  {
-FIXME(%p,%p: stub\n, iface, pcCount);
-return E_NOTIMPL;
+PngDecoder *This = impl_from_IWICMetadataBlockReader(iface);
+if (!pcCount) return E_INVALIDARG;
+*pcCount = This-ref;
+return S_OK;
  }
  
  static HRESULT WINAPI PngDecoder_Block_GetReaderByIndex(IWICMetadataBlockReader *iface,

Return reference count as block count?




Re: [patch 1/1] dlls/windowscodecs/pngformat.c: implemented 'PngDecoder_Block_GetCount'

2012-10-05 Thread Max TenEyck Woodbury
On 10/05/2012 03:55 AM, Nikolay Sivov wrote:
 On 10/5/2012 06:43, max+...@mtew.isa-geek.net wrote:
 From: Max TenEyck Woodbury max+...@mtew.isa-geek.net

 ---
   dlls/windowscodecs/pngformat.c |6 --
   1 files changed, 4 insertions(+), 2 deletions(-)

 diff --git a/dlls/windowscodecs/pngformat.c
 b/dlls/windowscodecs/pngformat.c
 index 686f9c6..e8e7cbe 100644
 --- a/dlls/windowscodecs/pngformat.c
 +++ b/dlls/windowscodecs/pngformat.c
 @@ -899,8 +899,10 @@ static HRESULT WINAPI
 PngDecoder_Block_GetContainerFormat(IWICMetadataBlockReade
   static HRESULT WINAPI
 PngDecoder_Block_GetCount(IWICMetadataBlockReader *iface,
   UINT *pcCount)
   {
 -FIXME(%p,%p: stub\n, iface, pcCount);
 -return E_NOTIMPL;
 +PngDecoder *This = impl_from_IWICMetadataBlockReader(iface);
 +if (!pcCount) return E_INVALIDARG;
 +*pcCount = This-ref;
 +return S_OK;
   }
 static HRESULT WINAPI
 PngDecoder_Block_GetReaderByIndex(IWICMetadataBlockReader *iface,
 Return reference count as block count?
 

I've screwed up. This is NOT what is supposed to be returned here. I am
in the process of digging out what this really should be.  Please do
NOT apply this patch!  (However, it does trigger at least one app to
do something useful and reveals the need for other changes...)




Re: [PATCH 1/3] ntoskrnl.exe: Add include/ddk/ntifs.h header with EPROCESS struct definition.

2012-10-05 Thread Dmitry Timoshkov
Did you check the DDK where it's supposed to be declared?

-- 
Dmitry.




Re: [PATCH 2/3] ntoskrnl.exe: Improve IoGetCurrentProcess stub.

2012-10-05 Thread Dmitry Timoshkov
Christian Costa titan.co...@gmail.com wrote:

 +EPROCESS process_info;
 +
  #ifdef __i386__
  #define DEFINE_FASTCALL1_ENTRYPOINT( name ) \
  __ASM_STDCALL_FUNC( name, 4, \
 @@ -1200,8 +1203,11 @@ NTSTATUS WINAPI FsRtlRegisterUncProvider(PHANDLE 
 MupHandle, PUNICODE_STRING Redi
   */
  PEPROCESS WINAPI IoGetCurrentProcess(void)
  {
 -FIXME(() stub\n);
 -return NULL;
 +FIXME((): partial stub\n);
 +
 +process_info.UniqueProcessId = (PVOID)PsGetCurrentProcessId();
 +
 +return process_info;
  }

Why do you think that returning the structure filled with garbage is better
than returning NULL?

-- 
Dmitry.




Re: [PATCH 2/3] ntoskrnl.exe: Improve IoGetCurrentProcess stub.

2012-10-05 Thread Christian Costa
2012/10/5 Dmitry Timoshkov dmi...@baikal.ru

 Christian Costa titan.co...@gmail.com wrote:

  +EPROCESS process_info;
  +
   #ifdef __i386__
   #define DEFINE_FASTCALL1_ENTRYPOINT( name ) \
   __ASM_STDCALL_FUNC( name, 4, \
  @@ -1200,8 +1203,11 @@ NTSTATUS WINAPI FsRtlRegisterUncProvider(PHANDLE
 MupHandle, PUNICODE_STRING Redi
*/
   PEPROCESS WINAPI IoGetCurrentProcess(void)
   {
  -FIXME(() stub\n);
  -return NULL;
  +FIXME((): partial stub\n);
  +
  +process_info.UniqueProcessId = (PVOID)PsGetCurrentProcessId();
  +
  +return process_info;
   }

 Why do you think that returning the structure filled with garbage is better
 than returning NULL?


It is not supposed to return NULL afaik but a valid pointer as you said
before.
The structure is zeroed except UniqueProcessId I need for MDL functions.
MDL struct have a PEPROCESS field and I would like to do things in a clean
way.
What's the problem with that ?



Re: [PATCH 2/3] ntoskrnl.exe: Improve IoGetCurrentProcess stub.

2012-10-05 Thread Dmitry Timoshkov
Christian Costa titan.co...@gmail.com wrote:

  Why do you think that returning the structure filled with garbage is better
  than returning NULL?
 
 
 It is not supposed to return NULL afaik but a valid pointer as you said
 before.
 The structure is zeroed except UniqueProcessId I need for MDL functions.
 MDL struct have a PEPROCESS field and I would like to do things in a clean
 way.
 What's the problem with that ?

The problem is that the returned info in the structure must be valid, you
can't initialize single field and pretend as done with it.

-- 
Dmitry.




Re: [PATCH 2/3] ntoskrnl.exe: Improve IoGetCurrentProcess stub.

2012-10-05 Thread Christian Costa
2012/10/5 Dmitry Timoshkov dmi...@baikal.ru

 Christian Costa titan.co...@gmail.com wrote:

   Why do you think that returning the structure filled with garbage is
 better
   than returning NULL?
  
  
  It is not supposed to return NULL afaik but a valid pointer as you said
  before.
  The structure is zeroed except UniqueProcessId I need for MDL functions.
  MDL struct have a PEPROCESS field and I would like to do things in a
 clean
  way.
  What's the problem with that ?

 The problem is that the returned info in the structure must be valid, you
 can't initialize single field and pretend as done with it.

 This struct is huge. Do you have some fields in mind?
What matters is what drivers need. I can add some typical fields if needed
but that
could be done in other patches when needed as well.



Re: [PATCH 2/3] ntoskrnl.exe: Improve IoGetCurrentProcess stub.

2012-10-05 Thread Dmitry Timoshkov
Christian Costa titan.co...@gmail.com wrote:

  This struct is huge. Do you have some fields in mind?
 What matters is what drivers need. I can add some typical fields if needed
 but that
 could be done in other patches when needed as well.

There are basic things like the header and object list management, besides
things like ActiveProcessors, Affinity, BasePriority is not hard to fill
from the start. Probably you need to duscuss how this should be done,
something tells me that without server support this is not going to work
very well.

-- 
Dmitry.




Re: [PATCH 1/3] ntoskrnl.exe: Add include/ddk/ntifs.h header with EPROCESS struct definition.

2012-10-05 Thread Paul Chitescu
On Friday 05 October 2012 10:00:00 am Christian Costa wrote:
 ---
  include/ddk/ntifs.h |  555
 +++ 1 file changed, 555
 insertions(+)
  create mode 100644 include/ddk/ntifs.h

 diff --git a/include/ddk/ntifs.h b/include/ddk/ntifs.h
 new file mode 100644
 [...]

What version of Windows were these extracted from?





Re: [PATCH 1/3] ntoskrnl.exe: Add include/ddk/ntifs.h header with EPROCESS struct definition.

2012-10-05 Thread Christian Costa
2012/10/5 Paul Chitescu pa...@voip.null.ro

 On Friday 05 October 2012 10:00:00 am Christian Costa wrote:
  ---
   include/ddk/ntifs.h |  555
  +++ 1 file changed, 555
  insertions(+)
   create mode 100644 include/ddk/ntifs.h
 
  diff --git a/include/ddk/ntifs.h b/include/ddk/ntifs.h
  new file mode 100644
  [...]

 What version of Windows were these extracted from?


 It's Vista. I didn't take these declarations directly from the ddk but on
several sources on the web.
I've just downloaded the DDK 7.1.0 to verify and make some changes if
needed.



Re: [PATCH 1/3] ntoskrnl.exe: Add include/ddk/ntifs.h header with EPROCESS struct definition.

2012-10-05 Thread Christian Costa
2012/10/5 Christian Costa titan.co...@gmail.com



 2012/10/5 Paul Chitescu pa...@voip.null.ro

 On Friday 05 October 2012 10:00:00 am Christian Costa wrote:
  ---
   include/ddk/ntifs.h |  555
  +++ 1 file changed, 555
  insertions(+)
   create mode 100644 include/ddk/ntifs.h
 
  diff --git a/include/ddk/ntifs.h b/include/ddk/ntifs.h
  new file mode 100644
  [...]

 What version of Windows were these extracted from?


 It's Vista. I didn't take these declarations directly from the ddk but on
 several sources on the web.
 I've just downloaded the DDK 7.1.0 to verify and make some changes if
 needed.


I cannot find these definitions in ddk 7.1.0 headers. It does not seem they
are supposed to be in the DDK.

I based my patch on these ones at
http://www.nirsoft.net/kernel_struct/vista/EPROCESS.html.
I saw on the web that ntifs.h was always involved.



Re: [PATCH 2/3] ntoskrnl.exe: Improve IoGetCurrentProcess stub.

2012-10-05 Thread Christian Costa
2012/10/5 Dmitry Timoshkov dmi...@baikal.ru

 Christian Costa titan.co...@gmail.com wrote:

   This struct is huge. Do you have some fields in mind?
  What matters is what drivers need. I can add some typical fields if
 needed
  but that
  could be done in other patches when needed as well.

 There are basic things like the header and object list management, besides
 things like ActiveProcessors, Affinity, BasePriority is not hard to fill
 from the start. Probably you need to duscuss how this should be done,
 something tells me that without server support this is not going to work
 very well.


What do you mean by object list management ?
There is only one element for now : nothing before nothing after. Unless
lists are circular.
I'm open for discussion but it's hard without an idea of what drivers do
and what we want
to support since wine is not intended to run all driver types.
So at the beginning, maybe we can do something simple and improve the
infrastructure
as needs appear.



Re: 'PngDecoder_Block_GetCount'

2012-10-05 Thread Max TenEyck Woodbury
Hmm. I definitely misunderstood what this function was intended to do.

As I understand things now, there are two ways to approach processing
graphical information:

1) As a stream of information to be processed in the order it arrives.
2) As an aggregate to be processed all at once.

The PNG format is specifically designed to allow it to be processed as
a stream with good efficiency.   Processing the aggregate is done by
processing the stream and accumulating the aggregated information.

The key interface to the stream approach is to enumerate the blocks and
process each one as you come to it.  This approach has already been
implemented.

The strategy of the aggregate approach is to have an array of blocks
and use an index to access the elements of the array.  The key elements
are getting the number of blocks (this function) and getting access to
the block by its index number (using 'GetReaderByIndex').  This approach
has not been implemented.

To do this efficiently, it should be possible to validate the
correctness of each block WITHOUT getting into any more details about
the blocks than possible.

Have I got this right so far?




Help getting amd64 assembly patch into wine?

2012-10-05 Thread Joerg-Cyril.Hoehle
Dan,

I found your message very unclear.
The patch adds support for OpenMP programs like this:
And then you start talking about vcomp_fork without telling us where
it comes from and what it should do.  So I'll guess from the names.
- vcomp_for_static/sections_init sound like startup code
  initialisation of BSS and DATA segments.
- fork sounds like running code with thread-local copies to BSS and DATA
  I guess vcomp eats up one register or parameter to keep a pointer to
  the thread-local storage.

p_vcomp_fork(0, 1, _test_vcomp_fork_worker1, ncalls);
Your code does not explain what the first parameter is.

I believe that va_list etc. is not going to lead you anywhere.

First, va_* is only one side.
E.g. include/wine/test.h uses va_list and __builtin_ms_va_list

You need the other side too, namely, given a va_* structure, call a
function X with the parameters given in that structure.

The GNU ffcall library http://www.gnu.org/software/libffcall/
distinguishes both.  One half is called vacall, the other one avcall :-)

Your tests show that you need 2 different va_lists:
p_vcomp_fork(0, 5, _test_vcomp_fork_worker5, 1, 2, 3, 4, 5);

1. On the receiver side, va_start would create a va_list for the parameter set
   (0, 5, function pointer, 1, 2, 3, 4, 5)

2. But now you need to call something with the apparent parameter set
   (1, 2, 3, 4, 5)
   (I say apparent because you don't explain the vcomp execution model.
Is a hidden parameter added somewhere? What's that first parameter 0 to 
fork?)

Obviously, if you don't know the internals of a va_list, you'll not be
able to transform one structure into the other.

So bad, now what is actually needed?

Think assembly.

Using your test example:
+p_vcomp_fork(0, 5, _test_worker5, 1, 2, 3, 4, 5);

_vcomp_fork finds data:
1. on the stack
2. in registers
3. in FP registers
The C stack layout is (topmost first):
  0, then 5, _test_worker5, 1, 2, etc.

What you obviously need to do is, supposing the first parameters are
duplicated in registers:

- Save registers and possibly FP registers into a structure
- Remember the stack pointer and number of elements,
  -- hereby creating a va_args structure whose layout you know.
- CreateThread?? etc.
- Restore registers
- Shift register parameters by 3 items: (assuming 5 such registers)
  register-for-param-1 (1) - register-for-param-4
  register-for-param-2 (2) - register-for-param-5
- Copy from stack into registers
  register-for-param-3 (3) - from stack
  register-for-param-4 (4) - from stack
  register-for-param-5 (5) - from stack
- POP 0 and 5
- POP _test_worker5 into scratch register
- JMPTO _test_worker5 via scratch register

This assumes there's nothing like CreateThread so you can run from the original 
stack.
If there were, you'd need to copy the 5 elements from the stack to the new one
(which is presumably why vcomp_fork receives their number as parameter).

Does this help?
Jörg Höhle



Re: [patch 1/1] dlls/windowscodecs/pngformat.c: implemented 'PngDecoder_Block_GetCount'

2012-10-05 Thread Vincent Povirk
You should take a look at the PNG format spec, particularly the part
about chunks: http://www.libpng.org/pub/png/spec/1.2/PNG-Structure.html

I believe what's needed here is to return all ancillary chunks.




Re: Help getting amd64 assembly patch into wine?

2012-10-05 Thread Dan Kegel
On Fri, Oct 5, 2012 at 7:27 AM,  joerg-cyril.hoe...@t-systems.com wrote:
 I found your message very unclear.
The patch adds support for OpenMP programs like this:
 And then you start talking about vcomp_fork without telling us where
 it comes from and what it should do.

Good point - it's unfair to expect people to run Visual C and look
at its .cod / .asm listing files as my message suggests.  I'll document
the vcomp execution model better in my next draft.

So I'll guess from the names.
 - vcomp_for_static/sections_init sound like startup code
   initialisation of BSS and DATA segments.

No, those are called at the start of a new parallel section
by every participating thread.  They set up thread-local stuff.

 - fork sounds like running code with thread-local copies to BSS and DATA
   I guess vcomp eats up one register or parameter to keep a pointer to
   the thread-local storage.

It means 'Run this helper function on all cores, and pass it these
parameters, which are all pointers to local variables'.

p_vcomp_fork(0, 1, _test_vcomp_fork_worker1, ncalls);
 Your code does not explain what the first parameter is.

It's a boolean saying whether to actually run in parallel, or just in
the current thread.

 I believe that va_list etc. is not going to lead you anywhere.

I'm going to give Maarten's suggestion a shot.  If it works, the
only assembly left will be a nearly verbatim copy of code in oleaut32/typelib.c

 Does this help?

Yes, your questions are very helpful.  I'll run the next draft by both
you and Maarten if you don't mind.
- Dan




Re: Help getting amd64 assembly patch into wine?

2012-10-05 Thread David Laight
On Fri, Oct 05, 2012 at 04:27:24PM +0200, joerg-cyril.hoe...@t-systems.com 
wrote:
 So bad, now what is actually needed?
 
 Think assembly.
 
 Using your test example:
 +p_vcomp_fork(0, 5, _test_worker5, 1, 2, 3, 4, 5);
 
 _vcomp_fork finds data:
 1. on the stack
 2. in registers
 3. in FP registers
 The C stack layout is (topmost first):
   0, then 5, _test_worker5, 1, 2, etc.

That sort of stack layout is likely to be valid for i386, but not for amd64.
64-bit (amd64) windows uses a different calling convention from (almost)
every one else.
But I don't think you can convert a partially consumed va_list back into
an argument list (eg to delete an initail argument) without 'cheating'.

On linux (and probably windows) the first int/ptr args are passed in
integer registers and the first few FP args are passed in FP registers.
When the registers run out, values are stacked.

This means that these two calls are equivalent:
printf(int %d, fp %f\n, 2, 3.15159);
printf(int %d, fp %f\n, 3.15159, 2);
the va_arg() processing has to remember which registers have already
been processed in order to know where to find the next argument.

David

-- 
David Laight: da...@l8s.co.uk




Re: [PATCH 2/3] ntoskrnl.exe: Improve IoGetCurrentProcess stub.

2012-10-05 Thread Saulius Krasuckas
* On Fri, 5 Oct 2012, Christian Costa wrote:
 2012/10/5 Dmitry Timoshkov dmi...@baikal.ru
 
   What matters is what drivers need. I can add some typical fields if 
   needed but that could be done in other patches when needed as well.
 
  There are basic things like the header and object list management, 
  besides things like ActiveProcessors, Affinity, BasePriority is not 
  hard to fill from the start. Probably you need to duscuss how this 
  should be done, something tells me that without server support this is 
  not going to work very well.
 
 What do you mean by object list management ?There is only one element 
 for now : nothing before nothing after. Unless lists are circular.
 
 I'm open for discussion but it's hard without an idea of what drivers do 
 and what we want to support since wine is not intended to run all driver 
 types.
 
 So at the beginning, maybe we can do something simple and improve the 
 infrastructure as needs appear.

This is nth time the discussion drives to the question:
How do you test ntoskrnl co functionality, folks?

I suppose Christian debugs some application which loads own, custom 
sys-drivers.

Wine has no tests which would build / load some simple sys-driver; and 
that needs to change in future, I'd say.  Well, this topic already was 
brought in once by Damjan Jovanovic. [1]

Plus, there are guys compiling kernel mode drivers with MinGW(-64) 
already: [2][3][4]

Or am I misunderstanding the right way to go?

S.

[1] http://www.winehq.org/pipermail/wine-devel/2010-March/082460.html
[2] http://strdup.livejournal.com/34596.html
[3] http://sourceforge.net/projects/mingw-w64/forums/forum/723797/topic/3163052
[4] http://www.fccps.cz/download/adv/frr/win32_ddk_mingw/win32_ddk_mingw.html




Re: [PATCH 2/3] ntoskrnl.exe: Improve IoGetCurrentProcess stub.

2012-10-05 Thread Christian Costa

Le 05/10/2012 23:01, Saulius Krasuckas a écrit :

* On Fri, 5 Oct 2012, Christian Costa wrote:

2012/10/5 Dmitry Timoshkov dmi...@baikal.ru


What matters is what drivers need. I can add some typical fields if
needed but that could be done in other patches when needed as well.

There are basic things like the header and object list management,
besides things like ActiveProcessors, Affinity, BasePriority is not
hard to fill from the start. Probably you need to duscuss how this
should be done, something tells me that without server support this is
not going to work very well.

What do you mean by object list management ?There is only one element
for now : nothing before nothing after. Unless lists are circular.

I'm open for discussion but it's hard without an idea of what drivers do
and what we want to support since wine is not intended to run all driver
types.

So at the beginning, maybe we can do something simple and improve the
infrastructure as needs appear.

This is nth time the discussion drives to the question:
How do you test ntoskrnl co functionality, folks?

I suppose Christian debugs some application which loads own, custom
sys-drivers.

Wine has no tests which would build / load some simple sys-driver; and
that needs to change in future, I'd say.  Well, this topic already was
brought in once by Damjan Jovanovic. [1]

Plus, there are guys compiling kernel mode drivers with MinGW(-64)
already: [2][3][4]

Or am I misunderstanding the right way to go?

S.

[1] http://www.winehq.org/pipermail/wine-devel/2010-March/082460.html
[2] http://strdup.livejournal.com/34596.html
[3] http://sourceforge.net/projects/mingw-w64/forums/forum/723797/topic/3163052
[4] http://www.fccps.cz/download/adv/frr/win32_ddk_mingw/win32_ddk_mingw.html


Right. Mainly game and their copy protection stuff.
Having a testing environment would be great. It's hard to test things.
Thanks for the links.





Re: 'PngDecoder_Block_GetCount'

2012-10-05 Thread Max TenEyck Woodbury
On 10/05/2012 10:58 AM, Vincent Povirk wrote:
 You should take a look at the PNG format spec, particularly the part
 about chunks: http://www.libpng.org/pub/png/spec/1.2/PNG-Structure.html
 
 I believe what's needed here is to return all ancillary chunks.
 

First, thank you for the pointer to the HTML version of the PNG spec.
I had the PDF one already, but the cross references make it a lot
easier to use.

Beyond that, I am not sure what you are talking about.  The value to be
returned (at the address specified by the 2nd parameter) is an unsigned
integer.  There is no place to return 'chunks'; only a place to return a
count.

In order to get that count, each and every one of the chunks needs to
be scanned and validated.  During the scanning process, it would make
sense to store the location of chunks in an indexed data structure.
That would nominally be an array, but a linked list or tree would also
work.

For a general WIC design, there needs to be at least three layers with
indexes built into at least two of the layers.

The top layer is the entire file.  The next layer is the set of frames
in the file.  PNG only allows one frame per file, but other formats can
have several (even many) frames.  The next layer is the set of blocks
(in this case chunks) in each frame.  In some cases there might be a
need for additional layers.

All this means I need to dig out the 'class' structure of IWIC, but it
would help if someone can confirm that I have not gone off the deep end
yet.




Re: 'PngDecoder_Block_GetCount'

2012-10-05 Thread Vincent Povirk
 Beyond that, I am not sure what you are talking about.  The value to be
 returned (at the address specified by the 2nd parameter) is an unsigned
 integer.  There is no place to return 'chunks'; only a place to return a
 count.

Other methods on that interface allow you to return an
IWICMetadataReader, which need to be based on individual PNG chunks.
Obviously, the GetCount method just gives the number that can be
returned.

 In order to get that count, each and every one of the chunks needs to
 be scanned and validated.  During the scanning process, it would make
 sense to store the location of chunks in an indexed data structure.
 That would nominally be an array, but a linked list or tree would also
 work.

I don't think it's really necessary to verify the checksum. You just
need to read a few bytes of header to get the chunk type and the
location of the next one. See the png_read_chunk function.

I don't understand anything you said after that paragraph.




Re: 'PngDecoder_Block_GetCount'

2012-10-05 Thread Max TenEyck Woodbury
On 10/05/2012 05:53 PM, Vincent Povirk wrote:
 Beyond that, I am not sure what you are talking about.  The value to be
 returned (at the address specified by the 2nd parameter) is an unsigned
 integer.  There is no place to return 'chunks'; only a place to return a
 count.
 
 Other methods on that interface allow you to return an
 IWICMetadataReader, which need to be based on individual PNG chunks.
 Obviously, the GetCount method just gives the number that can be
 returned.

Agreed then.  This is only one part of the total aggregate interface.
If this routine is implemented, the other methods need to be done as
well.  The enumeration of the chunks needs to be recorded.

 In order to get that count, each and every one of the chunks needs to
 be scanned and validated.  During the scanning process, it would make
 sense to store the location of chunks in an indexed data structure.
 That would nominally be an array, but a linked list or tree would also
 work.
 
 I don't think it's really necessary to verify the checksum. You just
 need to read a few bytes of header to get the chunk type and the
 location of the next one. See the png_read_chunk function.

I think the CRC check would be a good idea.  As the rational in the spec
mentioned, doing it guards against transition (and other) errors.
cynic_modeNo assurance that Murphy (or his so unkind worshipers)
can't get in of course./cynic_mode

 I don't understand anything you said after that paragraph.

I was thinking about other formats the IWIC framework has to handle.
Not just about PNG.





Re: wined3d: recognize Radeon HD 6670

2012-10-05 Thread Henri Verbeet
On 5 October 2012 22:12, Austin English austinengl...@gmail.com wrote:
 Fixes http://bugs.winehq.org/show_bug.cgi?id=31891

That doesn't look right (and doesn't do what you think it does
anyway), did you verify this against the Windows driver? It probably
just needs an entry to map HD 6670 to CARD_AMD_RADEON_HD6600,
although it's a bit curious that most of the existing entries for NI
have generic strings like HD 6600.




Wine test bot

2012-10-05 Thread Christian Costa

Hi,

Is there a problem with Wine test bost? Jobs seem to be stuck and some 
VMs show problem of memory.


Christian