From: SourceForge.net <no...@so...> - 2006-08-22 14:56:51
|
Bugs item #1304938, was opened at 2005-09-27 01:28 Message generated for change (Comment added) made by fredm You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=596648&aid=1304938&group_id=91293 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Gergely Szasz (szaszg) Assigned to: Nobody/Anonymous (nobody) Summary: X error: X_ShmPutImage Initial Comment: X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 147 (MIT-SHM) Minor opcode of failed request: 3 (X_ShmPutImage) Value in failed request: 0x4 Serial number of failed request: 334 Current serial number in output stream: 337 Fuse exit with this error (with X or SDL GUI) somtimes if we resize the screen... Maybe the "rectangle passed to XShmPutImage lies outside of the XImage"... ---------------------------------------------------------------------- >Comment By: Fredrick Meunier (fredm) Date: 2006-08-23 00:56 Message: Logged In: YES user_id=11017 Which version of Fuse are you using? Can you give some exact steps to get the problem to happen? I can't get any bad rectangles to be generated loading Cobra with all tape traps etc. off or when running Shock II (on my version of Fuse - closest to the 0.7.0 Render branch). This sounds a lot like the problem fixed by my 20050314 change to display.c. ---------------------------------------------------------------------- Comment By: Gergely Szasz (szaszg) Date: 2006-08-22 23:21 Message: Logged In: YES user_id=57243 One more thing, I check all "good" scalers' expander. There all use the clip()... so the problem origin may inside somwhere in display.c ---------------------------------------------------------------------- Comment By: Gergely Szasz (szaszg) Date: 2006-08-22 02:13 Message: Logged In: YES user_id=57243 My SDL and X ui give different error messages. When i try with SDL the message like the original message, but with X ui only one line: X Error: BadShmSeg (invalid shared segment parameter). I try to print out the x, y, w, h parameters before the UI put the "segment" to the display. SDL: normal, 2x, 3x, TV2x, Dotmatrix produce too big rectangles when make loading strips. When I select the TC2048 or TC2068 machine, fuse switch to double size and produce a Segmentation error (the left half of the screen is updated, the right half is black). Whit the TS2068, fuse switch to double size and produce two "BadValue (integer parameter out of range..." error (the right half of screen is black too...) so, i cannot check "deeply" the timex scalers (exept halfskip with X ui). With X ui, I can test only the Halfskip, Normal, 2x, and AdVMAME2x scalers. Except the AdvMAME, all of these scalers produce too big rectangles, but only the 2x scaler causes the error. (BadShmSeg) Here is some log line (320x240 normal): SDL: (x, y, w, h) SDL Adjusted rects: 288, 214, 32, 1 SDL Adjusted rects: 0, 224, 320, 9 SDL Adjusted rects: 0, 233, 136, 1 SDL Adjusted rects: 136, 233, 184, 1 !!!! SDL Adjusted rects: 0, 239, 320, 2 SDL Adjusted rects: 0, 239, 320, 1 X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 147 (MIT-SHM) Minor opcode of failed request: 3 (X_ShmPutImage) Value in failed request: 0x2 Serial number of failed request: 291 Current serial number in output stream: 294 X ui Normal 2x: (x, y, w, h) XShmPutImage: 0, 444, 640, 4 XShmPutImage: 0, 462, 32, 2 XShmPutImage: 32, 462, 608, 2 XShmPutImage: 0, 464, 640, 4 !!!! XShmPutImage: 0, 478, 640, 4 !!!! XShmPutImage: 0, 478, 640, 4 XShmPutImage: 0, 478, 640, 2 X Error: BadShmSeg (invalid shared segment parameter) If we try to cut back the too long height, with the SDL ui everithing will ok (except the Timex-scrap). With the X ui, if we grow the scaled_image size e.g. from scaled_image[ 2 * DISPLAY_SCREEN_HEIGHT ][ 2 * DISPLAY_SCREEN_WIDTH ]; to scaled_image[ 2 * DISPLAY_SCREEN_HEIGHT + 16 ][ 2 * DISPLAY_SCREEN_WIDTH ]; everithing ok (no more error messages), except the too big rectangles. SUMM: - the displayed rectangle height with some scaler (expander??) -- halfskip, normal, 2x, 3x, tv2x, and dotmatrix) -- somtimes too big (with 1 * scale pixel). - something wrong with the SDL default Timex scaler... ---------------------------------------------------------------------- Comment By: Fredrick Meunier (fredm) Date: 2006-08-19 00:21 Message: Logged In: YES user_id=11017 I'll need help getting to the bottom of this (as I don't run Linux or have access to valgrind). Can you use valgrinds gdb-attach option to find out what the dimensions of the rect being drawn was? ---------------------------------------------------------------------- Comment By: Markus F.X.J. Oberhumer (mfx) Date: 2005-12-26 19:21 Message: Logged In: YES user_id=12151 I'm hitting the same problem as well when using the 2x or 3x scaler, and more info becomes available when running valgrind 3.1.0: ==31957== Invalid write of size 2 ==31957== at 0x806E914: scaler_Normal3x_16 (scalers.c:794) ==31957== by 0x80645D2: uidisplay_frame_end (sdldisplay.c:574) ==31957== by 0x804D3CF: display_frame (display.c:993) ==31957== by 0x805EFD9: spectrum_frame (spectrum.c:83) ==31957== by 0x804DB81: event_do_events (event.c:140) ==31957== by 0x804DFF5: main (fuse.c:152) ==31957== Address 0x7FE4828 is 0 bytes after a block of size 1,382,400 alloc'd ==31957== at 0x447046D: malloc (vg_replace_malloc.c:149) ==31957== by 0x46ED59E: SDL_CreateRGBSurface (in /usr/lib/libSDL-1.2.so.0.7.2) ==31957== by 0x46F0629: SDL_SetVideoMode (in /usr/lib/libSDL-1.2.so.0.7.2) ==31957== by 0x8063C9F: sdldisplay_load_gfx_mode (sdldisplay.c:329) ==31957== by 0x8063FD2: uidisplay_init (sdldisplay.c:245) ==31957== by 0x8050EAD: machine_select_machine (machine.c:238) ==31957== by 0x8051026: machine_select (machine.c:153) ==31957== by 0x805D6E2: snapshot_copy_from (snapshot.c:140) ==31957== by 0x805D8C1: snapshot_read_buffer (snapshot.c:90) ==31957== by 0x805F6CD: tape_read_buffer (tape.c:176) ==31957== by 0x80627CE: utils_open_file (utils.c:121) ==31957== by 0x804E849: main (fuse.c:672) ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=596648&aid=1304938&group_id=91293 |