Hello. This probably odd bug at this stage, but since nv30 gallium driver how rewritten and bugs can be filled against it - i'll file it, may be someday it will be resolved. software: ddx: commit 581564466c47ab0435ecca3cf4d82c03e1b30259 Author: Francisco Jerez <currojerez@riseup.net> Date: Tue May 8 14:02:44 2012 +0200 dri2: Don't try to page-flip pixmaps (fdo bug 49351). libdrm: commit 5288729823ee1c243023758c35fbe8e3a70ccf9c Author: Marcin Slusarz <marcin.slusarz@gmail.com> Date: Tue May 1 23:24:45 2012 +0200 nouveau: fix channel closing kernel: nouveau tree commit 6de446e248e4e0bbb040abc1e76c9876750aac78 Author: Ben Skeggs <bskeggs@redhat.com> Date: Thu May 10 19:03:11 2012 +1000 drm/nv04-nv40: fix regression from a previous commit (SQUASH) mesa: commit 788fd04dacb9eb1e32010050c57cd2f49779311b Author: Tom Stellard <thomas.stellard@amd.com> Date: Wed May 9 11:50:02 2012 -0400 radeon/llvm: Remove AMDGPUConstants.pm wine-1.5.2 X server 1.10.6 hw: 01:00.0 VGA compatible controller: NVIDIA Corporation NV43 [GeForce 6600 GT] (rev a2) (prog-if 00 [VGA controller]) Subsystem: XFX Pine Group Inc. GeForce 6600 GT AGP Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx- Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 32 (1250ns min, 250ns max) Interrupt: pin A routed to IRQ 16 Region 0: Memory at fd000000 (32-bit, non-prefetchable) [size=16M] Region 1: Memory at e0000000 (32-bit, prefetchable) [size=256M] Region 2: Memory at fc000000 (32-bit, non-prefetchable) [size=16M] Expansion ROM at fe8e0000 [disabled] [size=128K] Capabilities: [60] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [44] AGP version 3.0 Status: RQ=32 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64- HTrans- 64bit- FW+ AGP3- Rate=x1,x2,x4 Command: RQ=32 ArqSz=0 Cal=0 SBA+ AGP+ GART64- 64bit- FW+ Rate=x4 Kernel driver in use: nouveau Kernel modules: nouveau I'll try to make screenshot from wine's windowed mode. Dmesg and other files will follow after application run, in few mins
Created attachment 61353 [details] screenshot 800x600x32 windowed, screen was at 1024x768x32
Created attachment 61354 [details] dmesg
Created attachment 61355 [details] glxinfo
Created attachment 61356 [details] X log
Is this still an issue with mesa 9.1 or later?
(In reply to comment #5) > Is this still an issue with mesa 9.1 or later? Yes, using those versions of software: bash-4.2# glxinfo | grep git OpenGL version string: 1.4 (2.1 Mesa 9.3.0-devel (git-6b5c802)) bash-4.2# wine --version wine-1.5.25-1-gc2505fd bash-4.2# uname -a Linux slax6 3.6.11-small #3 Wed Dec 19 03:52:52 GMT 2012 i686 Intel(R) Celeron(TM) CPU 1000MHz GenuineIntel GNU/Linux bug still here. I can't test newer kernels due to bug 58615 I tested 3dmark WITHOUT LIBGL_ALWAYS_INDIRECT variable set, but right now it was set for X session. (so, OpenGL 1.4 vs 2.1)
Created attachment 85162 [details] [review] disable ARB_framebuffer_object, print when trying to do both swizzle and linear Does this patch help? If not, do you see "rt_format is both swizzled and linear" getting printed a bunch (in a debug build... change it to a _debug_printf(...) if you're doing a non-debug build)
Hm, I'm getting a crash with current mesa, due to memory corruption (nv30->screen starts pointing to an illegal pointer, is_nv4x == 0x656369, use_nv4x == 0x29). The char values turn out to look more like '.pcm.device', so probably some use-after-free in the alsa module or just some plain corruption in wine-1.7.0. Ugh. Below is the full list of strings I saw inside of the objected pointed at by nv30... although even more interestingly, the stack frame goes like #0 0x7d550017 in nouveau_fence_next (screen=0x7daaf45c) at nouveau_fence.c:227 #1 0x7d46538e in nv30_context_kick_notify (push=0x7da660c0) at nv30_context.c:47 #2 0x7db28aef in ?? () from /usr/lib32/libdrm_nouveau.so.2 #3 0x7db28e0c in ?? () from /usr/lib32/libdrm_nouveau.so.2 #4 0x7db29bcb in nouveau_pushbuf_kick () from /usr/lib32/libdrm_nouveau.so.2 #5 0x7d46525f in PUSH_KICK (push=0x7da660c0) at ../../../../src/gallium/drivers/nouveau/nouveau_winsys.h:56 #6 0x7d4654d1 in nv30_context_flush (pipe=0x7da5c520, fence=0x0, flags=0) at nv30_context.c:81 And the nv30 in frame #1 is different than the nv30 in frame #6. The one in #6 is fine. In frame #1: $3 = (struct nv30_context *) 0x7daaf2f8 In frame #6: $6 = (struct nv30_context *) 0x7da5c520 Which is *way* off. The nv30 in frame #6 seems completely fine. I wonder if user_priv isn't being set correctly, or passed around correctly, or something. (Obviously worth nothing that this is a 32-bit userspace on 64-bit kernel situation as well.) ---- 0x7df49088: "X\263?|\003" 0x7df49090: "h\263?|" 0x7df4909c: "\350\262?|D\263?|\340\262?|" 0x7df490ac: "\021" 0x7df490b0: "modem" 0x7df490b6: "ts" 0x7df490bc: ")" 0x7df490c0: "\260\220\364}" 0x7df490c5: "\004" 0x7df490c8: "\f\221\364}\\\221\364}\001" 0x7df490d4: "\244\221\364}\364\262?|\020\306?|" 0x7df490e4: "\021" 0x7df490e8: "card" 0x7df490ed: "\024Z\367" 0x7df490f4: ")" 0x7df490f8: "\350\220\364}\003" 0x7df49100: "\200\263?|" 0x7df4910c: "\\\221\364}\310\220\364}\300\220\364}" 0x7df4911c: "\021" 0x7df49120: "device" 0x7df49127: "s" 0x7df4912c: "\031" 0x7df49130: "defaults.pcm.device" 0x7df49144: ")" 0x7df49148: " \221\364}\003" 0x7df49150: "0\221\364}" 0x7df4915c: "\310\220\364}\f\221\364}\300\220\364}" 0x7df4916c: "\021" 0x7df49170: "file_format" 0x7df4917c: "\021" 0x7df49180: "raw" 0x7df49184: "P\024Z\367" 0x7df4918c: ")" 0x7df49190: "p\221\364}\003" 0x7df49198: "\200\221\364}" 0x7df491a4: "\364\221\364}\324\220\364}\020\306?|" 0x7df491b4: "\021" 0x7df491b8: "true" 0x7df491bd: "lts" 0x7df491c4: "\031" 0x7df491c8: "file_truncate" 0x7df491dc: ")" 0x7df491e0: "\310\221\364}\003" 0x7df491e8: "\270\221\364}" 0x7df491f4: "\030\306?|\244\221\364}\020\306?|" 0x7df49204: "\021" 0x7df49208: "rawmidi" 0x7df49214: ")" 0x7df49218: "\b\222\364}" 0x7df4921d: "\004" 0x7df49220: "t\222\364}\344\222\364}\001" 0x7df4922c: "\f\223\364}$\306?|\300\234-|" 0x7df4923c: "\021" 0x7df49240: "card" 0x7df49245: "\024Z\367" 0x7df4924c: "\021" 0x7df49250: "device" 0x7df4925c: ")" 0x7df49260: "@\222\364}" 0x7df49274: "\254\222\364} \222\364}\030\222\364}" 0x7df49284: "\021" 0x7df49288: "subdevice" 0x7df49294: ")" 0x7df49298: "P\222\364}" 0x7df492ac: "\344\222\364}t\222\364}\030\222\364}" 0x7df492bc: "\021" 0x7df492c0: "hwdep" 0x7df492c6: "ts" 0x7df492cc: ")" 0x7df492d0: "\210\222\364}" 0x7df492d8: "\377\377\377\377" 0x7df492e4: " \222\364}\254\222\364}\030\222\364}" 0x7df492f4: ")" 0x7df492f8: "\300\222\364}" 0x7df492fd: "\004" 0x7df49300: "T\223\364}\214\223\364}\001" 0x7df4930c: "\264\223\364},\222\364}\300\234-|" 0x7df4931c: "\021" 0x7df49320: "card" 0x7df49325: "\024Z\367" 0x7df4932c: "\021" 0x7df49330: "device" 0x7df49337: "s" 0x7df4933c: ")" 0x7df49340: " \223\364}" 0x7df49354: "\214\223\364}" 0x7df49359: "\223\364}\370\222\364}" 0x7df49364: "\021" 0x7df49368: "timer" 0x7df4936e: "ts" 0x7df49374: ")" 0x7df49378: "0\223\364}" 0x7df4938d: "\223\364}T\223\364}\370\222\364}" 0x7df4939c: ")" 0x7df493a0: "h\223\364}" 0x7df493a5: "\004" 0x7df493a8: "\374\223\364}\334\224\364}\001" 0x7df493b4: "\310\234-|\f\223\364}\300\234-|" 0x7df493c4: "\021" 0x7df493c8: "class" 0x7df493ce: "Z\367" 0x7df493d4: "\021" 0x7df493d8: "sclass" 0x7df493df: "s" 0x7df493e4: ")" 0x7df493e8: "\310\223\364}" 0x7df493f0: "\002" 0x7df493fc: "4\224\364}\250\223\364}\240\223\364}" 0x7df4940c: "\021" 0x7df49410: "card" 0x7df49416: "ts" 0x7df4941c: ")" 0x7df49420: "\330\223\364}" 0x7df49434: "l\224\364}\374\223\364}\240\223\364}" 0x7df49444: "\021" 0x7df49448: "device" 0x7df4944f: "s" 0x7df49454: ")" 0x7df49458: "\020\224\364}" 0x7df4946c: "\244\224\364}4\224\364}\240\223\364}" 0x7df4947c: "\021" 0x7df49480: "subdevice" 0x7df4948c: ")" 0x7df49490: "H\224\364}" 0x7df494a4: "\334\224\364}l\224\364}\240\223\364}" 0x7df494b4: "\021" 0x7df494b8: "pcm" 0x7df494bc: "P\024Z\367" 0x7df494c4: ")" 0x7df494c8: "\200\224\364}" 0x7df494dc: "\250\223\364}\244\224\364}\240\223\364}" 0x7df494ec: ")" 0x7df494f0: "\270\224\364}" 0x7df494f5: "\004" 0x7df494f8: "L\225\364}\234\361?|\001" 0x7df49504: "T\363?|\324\234-| \356\366}" 0x7df49514: "\021" 0x7df49518: "cards" 0x7df4951e: "Z\367" 0x7df49524: "\021" 0x7df49528: "cards.pcm" 0x7df49534: ")" 0x7df49538: "\030\225\364}\003" 0x7df49540: "(\225\364}" 0x7df4954c: "\234\225\364}\370\224\364}\360\224\364}" 0x7df4955c: "\021" 0x7df49560: "default" 0x7df4956c: "\031" 0x7df49570: "cards.pcm.default" 0x7df49584: ")" 0x7df49588: "`\225\364}\003" 0x7df49590: "p\225\364}" 0x7df4959c: "\354\225\364}L\225\364}\360\224\364}" 0x7df495ac: "\021" 0x7df495b0: "sysdefault" 0x7df495bc: "\031" 0x7df495c0: "cards.pcm.default" 0x7df495d4: ")" 0x7df495d8: "\260\225\364}\003" 0x7df495e0: "\300\225\364}" 0x7df495ec: "<\226\364}\234\225\364}\360\224\364}" 0x7df495fc: "\021" 0x7df49600: "front" 0x7df49606: "Z\367" 0x7df4960c: "\031" 0x7df49610: "cards.pcm.front" 0x7df49624: ")" 0x7df49629: "\226\364}\003" 0x7df49630: "\020\226\364}" 0x7df4963c: "\214\226\364}\354\225\364}\360\224\364}" 0x7df4964c: "\021" 0x7df49650: "rear" 0x7df49655: "\024Z\367" 0x7df4965c: "\031" 0x7df49660: "cards.pcm.rear" 0x7df49674: ")" 0x7df49678: "P\226\364}\003" 0x7df49680: "`\226\364}" 0x7df4968c: "\344\226\364}<\226\364}\360\224\364}" 0x7df4969c: "\021" 0x7df496a0: "center_lfe" 0x7df496ac: "!" 0x7df496b0: "cards.pcm.center_lfe" 0x7df496cc: ")" 0x7df496d0: "\240\226\364}\003" 0x7df496d8: "\260\226\364}" 0x7df496e4: "4\227\364}\214\226\364}\360\224\364}" 0x7df496f4: "\021" 0x7df496f8: "side" 0x7df496fd: "\024Z\367" 0x7df49704: "\031" 0x7df49708: "cards.pcm.side" 0x7df4971c: ")" 0x7df49720: "\370\226\364}\003" 0x7df49728: "\b\227\364}" 0x7df49734: "\214\227\364}\344\226\364}\360\224\364}" 0x7df49744: "\021" 0x7df49748: "surround40" 0x7df49754: "!" 0x7df49758: "cards.pcm.surround40" 0x7df49774: ")" 0x7df49778: "H\227\364}\003" 0x7df49780: "X\227\364}" 0x7df4978c: "\344\227\364}4\227\364}\360\224\364}" 0x7df4979c: "\021" 0x7df497a0: "surround41" 0x7df497ac: "!" 0x7df497b0: "cards.pcm.surround41" 0x7df497cc: ")" 0x7df497d0: "\240\227\364}\003" 0x7df497d8: "\260\227\364}" 0x7df497e4: "l50|\214\227\364}\360\224\364}" 0x7df497f4: "\021" 0x7df497f8: "surround50" 0x7df49804: "!" 0x7df49808: "cards.pcm.surround50" 0x7df49820: "\230\034=|\021" 0x7df49828: "surround51" 0x7df49834: "9" 0x7df49838: "\006\021Z" 0x7df4983c: "\310\235\365}" 0x7df49844: "p\230\364}\200=0|" 0x7df49850: "\006\024" 0x7df49854: "\a" 0x7df4985c: "\210\230\364}\001" 0x7df49864: "LA\203}" 0x7df4986c: "1" 0x7df49870: "\006\021Z" 0x7df49874: "\310\235\365}" 0x7df4987c: "\340\374\366}8\230\364}" 0x7df49888: "float[1]" 0x7df4989c: "1&" 0x7df498a0: "\276V7}" 0x7df498a8: "\267W7}\355W7}\250A\367}"
I did send a patch to fix the crash (the ->user_priv wasn't being set correctly on init for some reason), but that just caused it to hang the gpu...
(In reply to comment #9) > I did send a patch to fix the crash (the ->user_priv wasn't being set > correctly on init for some reason), but that just caused it to hang the > gpu... You mean GPU hang like this? [drm] nouveau 0000:01:00.0: PGRAPH - ERROR nsource: DATA_ERROR nstatus: BAD_ARGUMENT [drm] nouveau 0000:01:00.0: PGRAPH - ch 3 (0x0007b000) subc 7 class 0x4097 mthd 0x0208 data 0x04040242 [drm] nouveau 0000:01:00.0: PGRAPH - ERROR nsource: DATA_ERROR nstatus: BAD_ARGUMENT [drm] nouveau 0000:01:00.0: PGRAPH - ch 3 (0x0007b000) subc 7 class 0x4097 mthd 0x0208 data 0x04040243 [drm] nouveau 0000:01:00.0: PGRAPH - ERROR nsource: DATA_ERROR nstatus: BAD_ARGUMENT [drm] nouveau 0000:01:00.0: PGRAPH - ch 3 (0x0007b000) subc 7 class 0x4097 mthd 0x0208 data 0x04040242 [drm] nouveau 0000:01:00.0: PGRAPH - ERROR nsource: DATA_ERROR nstatus: BAD_ARGUMENT [drm] nouveau 0000:01:00.0: PGRAPH - ch 3 (0x0007b000) subc 7 class 0x4097 mthd 0x0208 data 0x04040242 [drm] nouveau 0000:01:00.0: PGRAPH - ERROR nsource: DATA_ERROR nstatus: BAD_ARGUMENT [drm] nouveau 0000:01:00.0: PGRAPH - ch 3 (0x0007b000) subc 7 class 0x4097 mthd 0x0208 data 0x04040243 [drm] nouveau 0000:01:00.0: PGRAPH - ERROR nsource: DATA_ERROR nstatus: BAD_ARGUMENT [drm] nouveau 0000:01:00.0: PGRAPH - ch 3 (0x0007b000) subc 7 class 0x4097 mthd 0x0208 data 0x04040242 [drm] nouveau 0000:01:00.0: PGRAPH - ERROR nsource: DATA_ERROR nstatus: BAD_ARGUMENT [drm] nouveau 0000:01:00.0: PGRAPH - ch 3 (0x0007b000) subc 7 class 0x4097 mthd 0x0208 data 0x04040242 [drm] nouveau 0000:01:00.0: PGRAPH - ERROR nsource: DATA_ERROR nstatus: BAD_ARGUMENT [drm] nouveau 0000:01:00.0: PGRAPH - ch 3 (0x0007b000) subc 7 class 0x4097 mthd 0x0208 data 0x04040243 [drm] nouveau 0000:01:00.0: PGRAPH - ERROR nsource: DATA_ERROR nstatus: BAD_ARGUMENT [drm] nouveau 0000:01:00.0: PGRAPH - ch 3 (0x0007b000) subc 7 class 0x4097 mthd 0x0208 data 0x04040242 [drm] nouveau 0000:01:00.0: PGRAPH - ERROR nsource: DATA_ERROR nstatus: BAD_ARGUMENT [drm] nouveau 0000:01:00.0: PGRAPH - ch 3 (0x0007b000) subc 7 class 0x4097 mthd 0x0208 data 0x04040242 [drm] nouveau 0000:01:00.0: PGRAPH - ERROR nsource: DATA_ERROR nstatus: BAD_ARGUMENT [drm] nouveau 0000:01:00.0: PGRAPH - ch 3 (0x0007b000) subc 7 class 0x4097 mthd 0x0208 data 0x04040243 [drm] nouveau 0000:01:00.0: PGRAPH - ERROR nsource: DATA_ERROR nstatus: BAD_ARGUMENT [drm] nouveau 0000:01:00.0: PGRAPH - ch 3 (0x0007b000) subc 7 class 0x4097 mthd 0x0208 data 0x04040242 [drm] nouveau 0000:01:00.0: PGRAPH - ERROR nsource: DATA_ERROR nstatus: BAD_ARGUMENT [drm] nouveau 0000:01:00.0: PGRAPH - ch 3 (0x0007b000) subc 7 class 0x4097 mthd 0x0208 data 0x04040242 [drm] nouveau 0000:01:00.0: PGRAPH - ERROR nsource: DATA_ERROR nstatus: BAD_ARGUMENT [drm] nouveau 0000:01:00.0: PGRAPH - ch 3 (0x0007b000) subc 7 class 0x4097 mthd 0x0208 data 0x04040243 [drm] nouveau 0000:01:00.0: PGRAPH - ERROR nsource: DATA_ERROR nstatus: BAD_ARGUMENT [drm] nouveau 0000:01:00.0: PGRAPH - ch 3 (0x0007b000) subc 7 class 0x4097 mthd 0x0208 data 0x04040242 [drm] nouveau 0000:01:00.0: PGRAPH - ERROR nsource: DATA_ERROR nstatus: BAD_ARGUMENT [drm] nouveau 0000:01:00.0: PGRAPH - ch 3 (0x0007b000) subc 7 class 0x4097 mthd 0x0208 data 0x04040242 [drm] nouveau 0000:01:00.0: PGRAPH - ERROR nsource: DATA_ERROR nstatus: BAD_ARGUMENT [drm] nouveau 0000:01:00.0: PGRAPH - ch 3 (0x0007b000) subc 7 class 0x4097 mthd 0x0208 data 0x04040243 [drm] nouveau 0000:01:00.0: PGRAPH - ERROR nsource: DATA_ERROR nstatus: BAD_ARGUMENT [drm] nouveau 0000:01:00.0: PGRAPH - ch 3 (0x0007b000) subc 7 class 0x4097 mthd 0x0208 data 0x04040242 [drm] nouveau 0000:01:00.0: PGRAPH - ERROR nsource: DATA_ERROR nstatus: BAD_ARGUMENT [drm] nouveau 0000:01:00.0: PGRAPH - ch 3 (0x0007b000) subc 7 class 0x4097 mthd 0x0208 data 0x04040242 [drm] nouveau 0000:01:00.0: PGRAPH - ERROR nsource: DATA_ERROR nstatus: BAD_ARGUMENT [drm] nouveau 0000:01:00.0: PGRAPH - ch 3 (0x0007b000) subc 7 class 0x4097 mthd 0x0208 data 0x04040243 nouveau_ratelimit: 4 callbacks suppressed [drm] nouveau 0000:01:00.0: PGRAPH - ERROR nsource: DATA_ERROR nstatus: BAD_ARGUMENT [drm] nouveau 0000:01:00.0: PGRAPH - ch 3 (0x0007b000) subc 7 class 0x4097 mthd 0x0208 data 0x04040242 [drm] nouveau 0000:01:00.0: PGRAPH - ERROR nsource: DATA_ERROR nstatus: BAD_ARGUMENT [drm] nouveau 0000:01:00.0: PGRAPH - ch 3 (0x0007b000) subc 7 class 0x4097 mthd 0x0208 data 0x04040243 [drm] nouveau 0000:01:00.0: PGRAPH - ERROR nsource: DATA_ERROR nstatus: BAD_ARGUMENT [drm] nouveau 0000:01:00.0: PGRAPH - ch 3 (0x0007b000) subc 7 class 0x4097 mthd 0x0208 data 0x04040242 [drm] nouveau 0000:01:00.0: PGRAPH - ERROR nsource: LIMIT_COLOR nstatus: BAD_ARGUMENT PROTECTION_FAULT [drm] nouveau 0000:01:00.0: PGRAPH - ch 3 (0x0007b000) subc 7 class 0x4097 mthd 0x1d6c data 0x00000000 [drm] nouveau 0000:01:00.0: GPU lockup - switching to software fbcon [drm] nouveau 0000:01:00.0: Failed to idle channel 1. [drm] nouveau 0000:01:00.0: Failed to idle channel 2. [drm] nouveau 0000:01:00.0: Failed to idle channel 3. [drm] nouveau 0000:01:00.0: PFIFO_DMA_PUSHER - Ch 1 Get 0x00024528 Put 0x00024a18 State 0xc0000054 (err: MEM_FAULT) Push 0x00000000 [drm] nouveau 0000:01:00.0: PFIFO_INTR 0x00010000 - Ch 1 ---------- It happened just after applying your debug patch on top of mesa-git Mesa 9.3.0-devel (git-18805b1)
Yep, just like that. The thing I don't understand is [drm] nouveau 0000:01:00.0: PGRAPH - ERROR nsource: LIMIT_COLOR nstatus: BAD_ARGUMENT PROTECTION_FAULT [drm] nouveau 0000:01:00.0: PGRAPH - ch 3 (0x0007b000) subc 7 class 0x4097 mthd 0x1d6c data 0x00000000 method 0x1d6c is used for fencing within the nv30 gallium driver. It always writes a 0 to that method, so... I don't know what's going on. I'm not really familiar with the hardware, I was just following code paths around and noticed the user_priv thing causing the crash. The other patch (to disable ARB_framebuffer_object) is also required since the hardware can't handle it in all cases. The driver could work around it, but that extension isn't required until opengl 3.0 which can't be supported anyways (I'm told).
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mesa/mesa/issues/1050.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.